Непредвиденные последствия

Блог Андрея Шкуропия, программиста shareware

вторник, 7 июля 2009, 14:48

О языковом переводе интерфейса в shareware

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

Читать далее…

пятница, 26 июня 2009, 15:06

Прекращение поддержки Windows 9x

Очевидно, давно назрела необходимость принять волевое решение и прекратить поддержку в своих программах линейки операционных систем Windows 9x, куда входят Windows 95, 98 и Me. Коллеги надо мной насмехаются и говорят, что Microsoft уже собралась снимать с поддержки Windows XP, а мы тут еще тестируем программы под всеми древними операционками, но я до сих пор встречаю редкие прецеденты использования Windows 98 SE в некоторых небогатых учебных заведениях. Тот факт, что они не относятся к платежеспособным пользователям, для меня был не критичен, пока поддержка Windows 9x в коде не создавала проблем для дальнейшего развития программы easyQuizzy. Но вот сейчас я взглянул на весь свой код, написанный для обеспечения совместимости, и ужаснулся. Мне он совершенно не нравится. Он потенциально опасный в новых версиях Windows. Кроме того, он затрудняет добавление новой функциональности в области многоязыковой поддержки.

В общем так. Если кто-нибудь из пользователей Windows 9x отзовется здесь до выпуска easyQuizzy 1.6, мы продлим поддержку еще на пару месяцев. Если нет — ну, простите, но уже больше 10 лет прошло. Сколько ж можно-то…

понедельник, 1 декабря 2008, 14:59

Вышла новая версия easyQuizzy 1.4

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

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

Читать далее…

понедельник, 6 октября 2008, 9:23

Этот кошмарный внутренний софт

Внутреннее программное обеспечение — это ПО, которое используется только внутри конкретной организации или группы организаций для выполнения относительно узкого круга задач. Обычно внутренний софт разрабатывают сами предприятия в отделах автоматизации, а потом внедряют на рабочих местах по команде сверху. Иногда внутренний софт заказывают сторонним подрядчикам, предварительно проводя тендер.

Этот софт всегда является отвратительной дешевкой. Я не видел еще ни одного экземпляра внутреннего ПО, при использовании которого мне не хотелось бы разбить клавиатуру об голову его программиста.

Читать далее…

пятница, 26 сентября 2008, 17:21

Кто чем занимается

Есть два очень разных понятия, описывающие, чем человек занимается. Многие эти понятия путают, или считают синонимами:

  1. Программирование
  2. Разработка программного продукта

Если вы видите ту пропасть, которая их разделяет, то, скорее всего, занимаетесь вторым.

среда, 17 сентября 2008, 13:25

Видеозахват и тестирование программ

На стадии тестирования программного продукта между юнит-тестами и выпуском бета-версии есть три этапа, которые знает каждый тестировщик:

Читать далее…

четверг, 4 сентября 2008, 11:40

Прототипирование пользовательских интерфейсов: за и против

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

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

Читать далее…

четверг, 3 июля 2008, 8:54

Программистская лирика

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

Код растет, количество модулей исчисляется десятками, количество строк — десятками тысяч. Вы уже не помните всех свойств программы, которые реализовали.

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

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

вторник, 1 июля 2008, 20:25

Версии, ревизии, сборки и другие непонятные слова

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

Как известно, номера версий программ — это побочный продукт итерационной разработки ПО, которую еще называют «Модель водопада» или «Flow».

Суть метода состоит в следующем. Как только работающая программа выпускается в свет, и у разработчиков, и у пользователей сразу возникают идеи по ее улучшению. А когда перед выпуском программу тестируют, применяя неправильную методологию, то пользователи найдут в ней со временем кучу ошибок. И если разработчики захотят учесть эти пожелания и исправить/дополнить программу, они должны будут как-то отразить процесс ее изменения перед пользователями. Самое простое, что приходит на ум, — это добавить после названия программы (торговой марки) цифру или набор цифр, показывающих номер итерации в ее цикле «разработка-тестирование-выпуск».

Читать далее…

вторник, 1 июля 2008, 0:06

Про рефакторинг

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

Обратная сторона рефакторинга — иногда приходится бить себя по лбу, встретив в коде своей программы откровенную халтуру и разгильдяйстиво. Хоть я и не люблю эстетов от кодирования, которые красоту/универсальность кода ставят над функциональностью и временем разработки, но уж полностью расслабляться никогда нельзя. Одноразовые и одноверсионные программы типа “написал-и-забыл” — это никак не путь к успеху.

|