Отдых в Universal парке

Мой мартовский отпуск в Орландо

Отсутствие тестов - Признак плохого кода #3

Из моего личного опыта могу сказать, что когда код написан хорошо, для него несложно писать unit тесты и на их написание уходит минимальное время. 

Если код плохо написан, плохо спроектирован, то написание тестов становится серьезной проблемой, вызывает только разочарования и этим не хочется заниматься. 

Далеко не все имеет смысл тестировать и бывают случаи, когда отсутствие тестов допустимо. Но в большом проекте, когда проект состоит из тысяч строк кода, отсутствие unit тестов подозрительно и могут указывать на серьезные проблемы в коде.

Apple представила новый iPad с поддержкой карандаша

Apple уже не первый раз представляет новые планшеты в конце зимы - начале весны. Я точно не помню даты, но примерно в это время. И вот сегодня была презентация, показали новый ростов iPad. 

И ЭТО ВСЕ? 

Сказала жена депутат после бурной ночи и я после презентации. Я ожидал хоть чуть большее, может улучшение дизайна. А так поставили новый процессор, который уже в принципе существует на рынке какое-то время, добавили поддержку карандаша Apple, который существует уже давно, и выпустили это за доллары, которые уже существуют везде. Просто чуть уменьшили цену, особенно для школ. 

У классов нет свойств - Признак плохого кода #2

Очередной признак плохого кода - отсутствие свойств у класса. Опять же, это только признак, а не гарантия плохого кода. Бывает множество случаев, когда классы могут быть без свойств. Но если у вас в проекте большинство классов без свойств - это серьезный сигнал остановится и подумать, а все ли верно? 

Если честно, классы без состояний и свойств вызывают у меня очень серьезное подозрение. Я имею в виду вообще без свойств. Если их нет, то это уже получается что-то без состояний, в чем бывает необходимость, но очень редко. Просто посмотреть на классы в составе .NET, как часто мы наталкиваемся на классы со свойствами. 

Если в классе можно все методы сделать статичными, и функционал не поменяется, то почему они не статичные? 

Очередной мессенджер Телеграмм

Когда телеграмм только появился, то я не стал его ставить, потому что судя по первой информации, это был просто очередной мессенджер. Для общения с друзьями у меня уже есть социальные сети и всякие вайберы с вотсапами на телефоне. Для родных или друзей, которые пользуются скайпом у меня есть Skype. Для читателей есть сайт, твитер и опять же социальная сети в виде Facebook. В общем, проблем с общением у меня нет, чтобы ставить очередную говорился. 

Я не нарушаю законы страны, в которой живу, поэтому мне скрывать нечего и все обещания защищать мою переписку супер шифрованием мне не интересны. Поэтому в функциях Телеграмма меня интересовало ровным счетом - ничего. 

Umbers - бесплатный пазл для iOS

Вчера в AppStore стала доступна моя новая игрушка Umbers - это просто слово Numbers без первой буквы. Идея простая - нужно соединять одинаковые цифры, перетаскиванием цифр на соседние. В игре три режима - сложение, степерь и аркадный. Если играть в степерь, то лично я могу играть практически бесконечно, слишком простой режим на мой взгляд. Сложение на много труднее, потому что больше разнообразие возможных цифр. Самый интересный для меня - аркада. В этом режиме цифры больше 64 превращаются в бомбы, а помимо цифр иногда появляются кирпичи, которые можно убрать только бомбами. 

Уже есть идеи по улучшению, нужно показывать, какая текущая сумма, потому что под пальцем не видно, прихоидиться держать в памяти. Лично я соединяю не больше двух тайлов. Очень редко подряд соединяю три, поэтому для меня не проблема. Жена любит строить большие цепочки и жалуется. 

Оператор if - Признак плохого кода #1

Если у тебя в коде есть if оператор, который в зависимости от условия выполняет разные действия:

void func() {
	If (type == 1) {
		// логика функции #1
		 . . . 
		 . . . 
	}
	If (type == 2) {
		 // логика функции #2
		 . . . 
		 . . . 
	}
}

Rocket Roll

Давно я не обновлял свои игрушки для iOS, а скоро будет одна новая и потом будут обновления существующих. А пока ты ждешь их (хотя я мало в этом уверен) попробуй Rocket Roll. Это не реклама, мне за это не платили. Автор возможно читает этот блог, но даже не подозревает, что я написал про эту игру. iOS версия. Не знаю, есть ли андроид версия, я не нашел

.NET Core шаг в сторону Linux

Я обожаю .NET для Web и если строить большой сайт с E-Commerce, то я на первом месте бы смотрел на .NET и только потом на LAMP. Да, LAMP хостинг будет дешевле и можно смириться с некоторыми ограничениями PHP и проблемами, но .NET реально проще и удобнее для больших проектов. 

И благодаря .NET Core я могу написать на нем сайт и запустить его на Linux. Да это же мечта. Я понимаю, зачем Microsoft делают .NET Core, он быстрее и реально лучше, в нем исправили все недостатки .NET, которые остались после перехода с 1.0 на 2.0 и живы до сих пор. 

Вторая причина - Microsoft Azure. Компания хочет, чтобы программисты могли писать для Azure код на любой платформе. Ну люблю я macOS, так почему же не позволить мне писать код под моей любимой ОС, но публиковать его в Azure? Идея логична и понятна, а если я не захочу публиковать его в Azure? С классическим .NET я вынужден был бы купить Windows сервера и хостить их самостоятельно, а теперь я буду хостить самостоятельно, но на Linux серверах. 

Windows Linux система - дверь в реальный Linux

Я недавно начал слушать новый подкаст Linux Action News и в одном из последних выпусков я услышал о том, что Windows теперь будет поддерживать Kali Linux, который часто используют для Penetration Testing. Только по умолчанию будет ставиться ядро, что не совсем имеет смысл, ведь в Kali самое интересное не ядро, а пакеты, которые идут предустановленными с системой. Да, их вроде бы можно будет установить потом, но ведь как раз теряется самый смак. 

Утилиты для тестинга можно установить на любой дистрибутив, а прелесть Kali как раз в том, что этого делать не нужно. Без утилит это просто очередной Linux. 

А потом в подкасте затронули еще более интересную тему, что Microsoft убивает сама себя тем, что интегрировала Linux поддержку прямо в Windows 10 и сделала установку Linux системы проблемой единственного клика. Если пользователи Windows смогут попробовать Linux не уходя от кассы, то это прямая дорога к миграции.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне