По мотивам статьи на ibm.com/developerworks

Можно будет что-нибудь поискать в интернете. Потом. :)

Термины

  • YAGNI (You Ain’t Gonna Need It — не делай то, что не нужно).
  • DUF (Big Design Up Front — Большой Изначальный Проект) до Cowboy Hacking (Ковбойское хакерство)
  • Model-View-Presenter
  • Architectus Oryzus
  • Architectus Reloadus
  • Пост-тестирование (test-after development, TAD)
  • Разработки через тестирование (TDD)

Книги

  • The Productive Programmer
  • The Pragmatic Programmer

Мое эмпирическое правило для проектов на Java гласит, что не должно быть методов длиннее десяти строк.

Комбинированный метод. Шаблон этого метода содержит три ключевых утверждения:

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

Кино: Бесславные ублюдки

Бесславные ублюдки

Фильм Квентина Тарантино про победу 9 американских евреев над силами 3 рейха. :)

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

Немного разочарован одним моментом в конце. Но это мелочи.

Изучая Си. Первая программа.

Мне повезло, у меня была конкертная задача. На реализацию я потратил ~4 дней. Что слишком долго для задачи, но.. Это моя первая программа.

Задача: написать генератор конфигурационных файлов для связки бекенд(nginx)-фронтенд(apache22) которые работают на одном сервере.

У нас уже была реализация этой системы. Работает это так. В БД mysql через вебинтерфейс заносится информация о домене. Хранится

  • document_root
  • domain
  • aliases — через перенос строки
  • server — номер сервера
  • updated
  • updated_nginx

updated и updated_nginx устанавляиваются в 1 когда происходит обновление или добавление домена.

Конфигурация виртуальных хостов типичная и является шаблоном.

В общем задача

  • Принять и обработать аргументы командной строки. При этом число обязательных аргументов должно быть минимально.
  • Прочитать конфигурацию соеденения с mysql сервером. Она хранится в файле. Там-же хранится номер сервера.
  • Получить из БД mysql все домены которые нужно обновить и сложить в структуру.
  • Пройтись по этим доменам циклом. Сгенерить для каждого конфигурацию по шаблону. Обновить поля updated дабы показать что мы сделали конфигурацию.
  • Пройтись по директории содержащий конфиги и сгенерить конфигурационный файл содержащий include со всеми файлами в директории.
  • Перезагрузить вебсервер, дабы тот подхватил новую конфигурацию.

Читать далее

Изучая Си. Выбор IDE — Sun Studio.

Я давно программирую и привык к хорошим IDE. Хорошее IDE должно обладать следующими свойствами:

  • Подсветка синтаксиса :)
  • Настройка горячих клавишь :)). Смайлик потому что в Code::Block это оказалось не просто. В этой программе настройка клавиш — это плагин, который ставится отдельно.
  • Объединение кода в проект
  • Управление текстом
    • Дублирование строки, выделенного блока текста
    • Перемещение выделенного блока текста
    • Удаление строки
    • Добавление \ удаление отступов
    • Форматирование выделенного фрагмента
  • Открытие файлов по горячей клавише
  • Открытие файла с классом по имени
  • Контрол-клик или какой-нибудь хот кей должно переводить нас к объявлению
  • Иногда полезен просмоторщик ресурсов. Показывает использованные переменные, функции и проч. В текущем файле

Понравилась функция рефакторинг. Переименование переменной через IDE с предварительным просмотром изменений.

Так-же понравилось Local history. Эдакий RCS встроенный в IDE. Все изменения по коду контролируются. Очень удобно. Кроме того там где есть такая штука, обычно есть связка с реальной RCS. Показывает цветом на полях, что добавилось, что изменилось в коде.

Подсветка ошибок, опечаток. А так-же полезно показывать неиспользуемые локальные переменные, но уже может быть даже перебор.

В общем для PHP лучшее чем я пользовался — это JetBrains Web IDE.

Sun Studio Ну а для Си\Си++ я нашёл Sun Studio. Думаю что тот-же функционал есть в NetBeans с плагином для Си\Си++.

Смотрел следующие среды

  • Geany
  • MonoDevelop
  • Code::Blocks
  • CodeLite
  • Eclipce CDE
  • KDevelop 4

Изучая Си. Начало.

Кубик рубик Мой опыт программирования ~9 лет. Я писал на паскале, дельфи, перл и пхп. По-настоящему умею писать лишь на PHP. Кроме того у меня нет специального образования. Приходилось учиться всегда. У меня даже был кризис на эту тему, устал. Где-то пару лет назад я осознал наличие так называемой «базы». У каждой предметной области будь то бухгалтерия, медицина, программирование есть пласт информации который каждый соответствующий специалист должен обладать — базовые знания.

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

Всегда хотел изучить си. На нём написано очень-очень-очень много всего, мне казалось не спроста. Я считаю знание си даёт реальное представление о том как работает компьютер на низком уровне. Так-же даёт представление об алгоритмах, структурах данных. В общем знание си — это и есть база.

Я много лет пытался овладеть сями. Много лет, мне это не удавалось. В общем чудо произошло наступило понимание как это работает. Здесь я хочу дать ссылки на литературу и указать с чего начать.

Читать далее

Кино: Продавец

Продавец

В пятницу был на пошлой и вульгарной комедии «Продавец» в живом переводе Гоблина. Поржал. :)

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

Мероприятие проходило в кинотеатре «Ударник». Советский кинотеатр. На стенах плакаты советской эпохи. Уж не знаю оригиналы или подражание. Нравится!

sovetskiy_plakat-3

Читать далее

Книги: Дэвид Флэнаган, «JavaScript Подробное руководство»

Дэвид Флэнаган, "JavaScript Подробное руководство"

Наконец-то дочитал книгу. Доооолго я её мурыжил. И не дело не в том, что плохая книга, а в том что я медленно читаю. К слову сказать книга, которую я читаю сейчас по скорочтению.

О книге. 5-е издание. Издательство O’Reilly. Перевод: А. Киселёва, издательство Символ-Плюс 2008 год.

В общем спасибо Дэвиду. Это замечательная книга, с простым, понятным текстом. Хорошим стилем изложения. Правильными примерами, которые сделаны на отличном уровне. В общем я получил знания по предмету.

Читать далее