9 анти-паттернов, о которых должен знать каждый программист

Автор: admin от 13-06-2015, 22:52, посмотрело: 488

В программировании самокритика – это умение распознать контрпродуктивные решения в дизайне, коде, процессах и поведении. Знание о вредных шаблонах решений полезно для программиста. В этой статье я опишу анти-паттерны, которые я встречал на своём личном опыте время от времени.

Некоторые из них напрямую или косвенно связаны с когнитивными искажениями человеческого сознания – в этих случаях я даю ссылки на соответствующие вики-статьи. Также интересен список известных когнитивных искажений.

1 Преждевременная оптимизация


В 97% случаев надо забыть об эффективности малых частей программы: преждевременная оптимизация – корень всех зол. Но в 3% случаев об оптимизации забывать не нужно.
Дональд Кнут

Хотя, «никогда» чаще лучше, чем «прямо сейчас»
Тим Питерс, Зен языка Python


Что это

Оптимизация, проводимая до того, как у вас есть вся информация, необходимая для принятия взвешенных решений по поводу того, где и как нужно её проводить.

Почему плохо

На практике сложно предсказать, где встретится узкое место. Попытки навести оптимизацию до получения эмпирических результатов приведут к усложнению кода и появлению ошибок, а пользы не принесут.

Как избежать

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

Категория: Программирование

 

Уязвимость в приложении Mail в iOS 8.3

Автор: admin от 13-06-2015, 22:05, посмотрело: 573

Уязвимость в приложении Mail в iOS 8.3

Уязвимость позволяет внедрить фишинговое письмо, которое на внешний вид не отличается от формы ввода логина и пароля в iCloud.

Под катом пример кода, эксплуатирующий уязвимость.

Категория: Информационная безопасность, Apple

 

Почему Go обречён на успех

Автор: admin от 13-06-2015, 21:48, посмотрело: 482

TL;DR Golang был разработан специально для того, чтобы расцвести в больших проектах, которые пишут большие группы программистов разных уровней, и в мире нет такой группы больше, чем open-source сообщество.

Почему Go обречён на успех

Абсолютно всё в жизни основано на компромиссах — первый закон термодинамики доказывает это, и языки программирования тут не исключение. Компромиссы в Go не уникальны, но именно благодаря их удачному сочетанию, Go и случился. Законы физики также утверждают, что каждое действие порождает противодействие, и, с ростом популярности, также возрастает количество критики в адрес языка, иногда обоснованной, иногда не очень. Позвольте мне объяснить, почему я считаю, что эта критика не важна, и Go обречён на успех ни смотря ни на что.

Категория: Программирование, Системное администрирование

 

Интересные заметки по C# и CLR (v2.0)

Автор: admin от 13-06-2015, 21:01, посмотрело: 462

Интересные заметки по C# и CLR (v2.0)
Пришло время выложить вторую часть заметок по .NET.
Не верю

Категория: Программирование

 

Знакомство с OsmocomBB: 0x03 Software

Автор: admin от 13-06-2015, 16:06, посмотрело: 1014

Знакомство с OsmocomBB: 0x03 Software

И снова здравствуйте! Пришло время рассказать о сборке програмного обеспечения для работы с OsmocomBB. На данном этапе у начинающих исследователей могут возникнуть трудности, поэтому постараюсь разложить все по полочкам. В этой части я расскажу о структуре проекта, принципах взаимодействия телефона и компьютера, а также подробно опишу процесс компиляции. Рекомендую вооружиться каким-нибудь дистрибутивом Linux, потому-что серверная часть проекта разрабатывалась именно под данное семейство операционных систем. Также советую воздержаться от использования виртуальных машин, так как возможны проблемы с запуском приложений на телефоне из-за временных задержек.

Категория: Программирование » Веб-разработка

 

Upgrade до Middle PHP-разработчика за 3 месяца

Автор: admin от 13-06-2015, 03:19, посмотрело: 463

В очередной раз на меня свалилась задача найти хорошего PHP-программиста.
По результатам прозвона потенциальных кандидатов, 90% тех, кто мнит себя Middle, на самом деле Junior и годы опыта не спасают, потому что клепают однотипный код в пределах заданий, посланных свыше.

Прописал минимальный план желающим сделать рывок и перейти на следующий уровень без отрыва от производства.

Категория: Программирование, Веб-разработка