На чем и как Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #053, стр. 053-056-6 Прежде чем опускать лапы на клавиатуру, мучительно соображая, что бы такое сейчас написать, обязательно обшарь все уголки Сети на предмет наличия уже готового кода. Программирование возникло не сегодня и не вчера. Все, что только можно было написать, уже написано! Допустим, тебе потребовалась своя версия кодека G.729 для создания мини-АТС или для организации телеконференции. Писать все с нуля? Мы что, рехнулись?! Открываем Google, выясняем, что стандартизацией этого протокола занимается комитет International Telecommunication Union, представленный сайтом www.itu.int, где можно заказать (правда, не бесплатно) не только описание самого алгоритма сжатия, но и исходные тексты кодеков с комментариями. Зная конкретно, что именно мы ищем, легко добываем файлы в Осле (правда, их там 600 метров с гаком, но Осел животное терпеливое, и не такие объемы перетаскивал). Как вариант, можно скачать библиотеку Intel IPP, в состав которой входит несколько версий кодека, оптимизированных под MMX и SSE. Помимо этого, в процессе поиска обнаруживается добрый десяток "студенческих" реализаций вполне приемлемого качества. Доступность исходных текстов большинства UNIX-приложений превращает программирование из творческой задачи в азартный поиск готовых кусков кода, которые порою обнаруживаются в самых неожиданных местах. Конечно, при этом всегда существует риск нарваться на чью-то ошибку (и тщательно замаскированную закладку в том числе), но… искушение всегда побеждает соблазн. Разработчик движков - хороший алгоритмист и отчасти даже математик. Знания ассемблера и устройства операционной системы приветствуются, но в общем-то необязательны. Зато свой непосредственный язык программирования разработчик должен знать от и до, используя предоставляемые им возможности на полную катушку. На поверхности Пользовательский интерфейс - это лицо и одежка программы, зачастую отнимающие более половины общего времени разработки проекта (а некоторые приложения, например, бух или склад, из одного интерфейса и состоят, "вычислительного" кода там очень немного). Интерфейс не обязательно должен быть графическим. Командная строка и консольный режим здравствуют и по сей день, однако сфера их применения уменьшилась до очень узкого круга (можно даже сказать "клуба") матерых профессионалов. Кворума мы не наберем, а выйти на массовый рынок без иконок нереально (вот она, скрытая религиозность!). Эту интеллектуально-непритязательную, но трудоемкую работу целесообразнее всего поручить "пионерам" - начинающим программистам с дизайнерской жилкой, потому что разработчик интерфейсов в первую очередь художник, а уже после этого программист. Использование готовых пиктограмм не только безвкусно, но и пошло. Любая программа должна иметь свой собственный, легко узнаваемый "фирменный" стиль, выполненный в единой цветовой гамме и объединенный общей идеей. Стандартные ресурсы, входящие в комплект штатной поставки Visual Studio, ни на что не годятся (программы, написанные "для себя", мы в расчет не берем). |