Статьи - Программирование

Рефакторинг – необходимость или мода?

Что такое рефакторинг? Я видел достаточно много определений этому понятию, но все они сводяться к улучшению существующего кода. Если ты пишешь только идеальный код, который нужно улучшать только в тех случаях, когда он не работает, то сильно заблуждаешся. Улучшения нужны даже тогда, когда код работает вполне корректно. Для чего, когда и как нужно улучшать мы поговорим в этой статье.

Совместная разработка кода или Разделяй и властвуй (Часть 1)

В одиночку написать корпоративное приложение достаточно проблематично. Одна, даже очень умная голова, даже при использовании современных визуальных средств, сможет создать только небольшую утилиту не более 10 000 строк. Иметься ввиду – в разумные сроки. Если программа больше, то на ее создание уйдет очень много времени. Чтобы сократить время разработки, приходиться набирать команду программистов. Но 10 хороших умов – это хорошо, но их еще нужно организовать и обеспечить нормальную совместную работу, чтобы никто и никому не мешал.

Совместная разработка кода или Разделяй и властвуй (Часть 2)

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

Боевые действия в условиях ограниченной видимости

Даже при наличии 512 мегабайт, расходовать память, не думая о последствиях глупо. Дело в том, что Windows XP в домашней редакции уже съедает от этого объема 128 метров, а профессиональная редакция отнимает все 256. Всякие примочки и побрякушки в районе часов, антивирусы и сетевые экраны могут отнять еще 64 метра. Получается, что для других приложений остается не так уж и много места. Если одновременно будет запущен Delphi 2006, 3DS Max и Photoshop, то работа станет невыносимой, ведь эти монстры сжирают оперативку хуже вирусов.

Безопасность в PHP - системные команды

Язык PHP интерпретируем, и можно считать, что он узконаправлен, потому что основное его предназначение – WEB программирование. Свою задачу по формированию WEB страниц и обращению к базам данных он выполняет отлично. Но он не всесилен. В PHP может быть обращения к железу или других низких функций, например, управление безопасностью в ОС. Это связано еще и с тем, что безопасность на каждой платформе разная и архитектура в Windows и Linux отличается. Чтобы получить доступ к возможностям, которых нет в языке, можно обращаться к ОС и программам на других языках.

Использование интерфейсов

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

Unit тесты

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

git - современное управление кодом

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

Как учить языки программирования

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

Когда использовать интерфейсы в программировании

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

Настройка Apache на macOS

Я обожаю использовать mac для web разработки и на php я пишу только на нем. На Surface Pro у меня нет ни PHP, ни MySQL, ни Apache. Давние читатели блога уже знают, что я когда-то пробовал MAMP, но потом перешел на чистый MAMP (Mac, Apache, MySql, PHP). Недавно получил письмо с просьбой расказать, как настроить Apache на маке. Выполняю просьбую.  

Отладка .NET приложений в Visual Studio

Далеко не всегда удается писать код абсолютно без ошибок. Если ошибки компиляции нам помогает отловить компилятор, то с ошибками логики дело обстоит немного сложнее. Как узнать, почему какая-то переменная не изменяется или почему результат выполнения какого-то кода не такой, как вы ожидали? Все это сложно, если в вас нет мощного средства отладки программы, а в Visual Studio средства отладки достаточно мощные, чтобы найти любые ошибки.

О блоге

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

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

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

Пишите мне