← All posts tagged dev

yzh44yzh
dev надо, надо применять юнит тесты к fms-коду. А то хреново, запустив два клиента и нажав в них N кнопок, чтобы воспроизвести нужную ситуацию, вдруг обнаружить, в коде fms-части опечатка.
yzh44yzh
dev Чегой-то вдруг подумалось: в паттерне синглтон считается важным, что он гарантирует наличие только одного экземпляра класса, а то, что он еще организует глобальную точку доступа, это вторично (и плохо, ибо — глобальная переменна). Но вот меня его одиночество как-то вообще мало заботит, а глобальность доступа нужна. И ленивая инициализация как бонус. Посему иногда юзаю ленивый синглтон такого вида:
class Some
{
static public inst:Some;
public function Some()
{
Some.inst = this;
}
}
Пожалуй это вообще не стоит синлтоном называть, а как-нибудь типа Global Object. Но вот он определенно нужнее, чем классический синглтон.
yzh44yzh
dev Пишу грязный код и колбасит меня неслабо — руки так и тянутся к рефакторингу, хотя это не так просто во Flash IDE. Вот магическими цифрами забил код и теперь не могу на это смотреть :(
yzh44yzh
dev Продолжаю бороться с Flash IDE. Встроенный редактор быстро задолбал, начал выносить код во внешние классы. Вдруг оказалось, что я еще не программировал во Flash IDE на AS3 и все мои старые навыки касаются AS2. Приходится осваивать это новое для себя дело :)
yzh44yzh
dev Вот и до меня дошла чаша сия: кодить во Flash IDE. А я уж забыл, как она выглядит. Прикольная у дизайнеров система контроля версий: chat1.fla, chat2.fla, ... chatN.fla И как они вообще с этим живут?
yzh44yzh
dev Неудобно отлаживать FMS приложения, запуская для этого каждый раз клиента. Надоело. Пора учиться покрывать код тестами.
yzh44yzh
dev В дополнение к 211955. Где-то в книге Спольского читал "строгая типизация vs утиная типизация". Автор (к сожалению не помню, кто) сперва был убежденным приверженцем строгой типизации. А потом понял, что она все равно не спасает от всех проблем. Зато от всех (вернее, от большего числа проблем) спасают юнит-тесты. Значит их надо юзать. А раз они все равно юзаются, то и строгая типизация не нужна. Все равно тесты поймают те баги, от которых спасает строгая типизация. В итоге автор перешел с Java на Python. (by the way, Python — основной язык разработки в гугл).
yzh44yzh
dev Слишком много я написал кода своего, и слишком мало прочитал чужого — вот корень проблем. Чтобы подняться на следующий уровень, нужно поработать в чужих проектах и почитать чужой код.
yzh44yzh
dev Что-то никак не налажу цикл разработки.

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

Реально получается цикл такой: делаю фичи, тестирую локально, обновляю на хосте, тестирую на хосте, показываю шефу, у него не работает, ругаемся, ловлю баги-заливаю-у шефа не работае-ловлю баги-и т.д., пока силы не кончатся, где-нибудь в 22.00 ухожу домой.

Надо с этим что-то делать.
yzh44yzh
dev Почему-то Subversive плагин в Eclipse не разрешает сравнивать рабочую копию с последней правкой в репозитории. Для отдельных файлов разрешает, для каталогов (и всего проекта) — не разрешает. К счастью, консоль никто не отменял :)
svn diff -r HEAD
yzh44yzh
dev Вчера собрал для дочки детский мебельный комплекс, включающий в себя двухярусную кровать и спортивный уголок. Процесс не сильно отличается от программирования с использованием малознакомого фреймворка — все соединяется логично, но в силу отсутствия опыта — обо всем надо догадываться. Документация от разработчиков, как обычно, убогая, туманная и противоречащая релиям. Сборка закончилась успешно :)
yzh44yzh
dev Забавно, как я радуюсь сочиненному bash-скрипту в 60 строк, при том, что за плечами немало строк кода на других языках. Новая игрушка всегда радует больше, чем старые.
yzh44yzh
dev Вот переделываю часть функционала, что была реализована на гадком, ненадежном жабаскрипт. Реализую на хороших, правильных SharedObjects. Даешь надежность. Хотя тут не столько в надежности дело, сколько в табах браузера. У жабаскрипта правый таб неведает, что делает левый.
yzh44yzh
dev только что осенило, что хотя клиентскую часть тестируется вручную, а не автоматически, формальные тесты к ней все равно нужно писать, только не на языке программирования, а на естественном языке — тупо перечислить все возможные варианты использования. Ну или хотябы самые важные и самые опасные. Начал писать...
yzh44yzh
dev Перестал таскать домой/на работу большой ноутбук. Дома пользуюсь только маленьким. Flex на него ставить нету смысла — не потянет. Свой домашний проект, флэш блог, буду теперь делать в "легкой" среде — Vim, bash, svn из консоли. Компилировать буду из fcsh, это получше, чем использовать mxmlc напрямую. Хотя mtasc и haXe для такого стиля работы значительно удобнее, чем тулы из Flex SDK.
yzh44yzh
dev Oднако просек фишку, как сливаются ветки в svn. Главное — четко знать номера правок, какие уже слиты, а какие еще нет, чтобы не редактировать одни и те же конфликты.