brutfaq
4 подписчиков
Совершенность кода
Идеальный код существует – и это не шутка. Нет, космически спутники, безошибочная система управления «ядерным щитом», программное обеспечение АЭС тут совершенно не причём. Идеальный код – это программа, выводящая на экран «Hello world».
Фраза «Здравствуй, мир!» известна каждому программисту. Появилась она в 1978 году, как пример использования языка С, и до сих пор остаётся первым шагом в освоении языков программирования для тысяч студентов по всему миру.
Перейдя по ссылке вы увидите пример «Hello World» на трёхстах языках программирования. Каждый вариант программы является примером идеального, безошибочного, совершенного кода.
На Бейсике программа состоит из 21-го символа. На BIT, Redcode, инопланетном Credits – нескольких сотен. Разница в методологии между этими языками – колоссальна. Результат выполнения работы один и тот же.
Идеальный код не самый короткий, не самый быстрый, не самый удобный для программиста. ИК – наиболее простой вариант исполнения заданной функции. Надо вывести фразу на экран – выведет. Пристыковать Shuttle к Орбитальной Космической Станции – пристыкует. Функция не требует выводить «Hello World» в зелёном неоне, не заставляет Shuttle варить нам кофе. Мы должны сделать лишь то, что должны, так просто, как сможем.
И слепой увидит – код, который пишите лично вы, с точки зрения математики, ужасен.
Идентификация кода
Софт, которым мы пользуемся ежедневно, разрабатывали от одного до нескольких сотен программистов, на протяжении пары часов или нескольких лет. Кто-то из них сидел на кофе и сигаретах, кто-то работал по ночам, нашлись и те, кто программировал по несчастной случайности; были наркоманы, трудоголики, лентяи, гении, посредственности. Финансовый кризис, грязная посуда, сбитая собака – всё отражалась в их головах и в том, что они делали.
Внешние факторы неминуемо сказываются на результатах работы. Нехватка денег в развивающихся странах породила целое культурное явление под названием «индийский код». «Индийский код» - это код, созданный с использованием всех известных программисту технологий, код избыточный, перегруженный странными конструкциями и переходами, но, тем не менее, работающий. Одно время в Индии существовала практика оценки производительности труда программиста на основе количества написанного кода. Чем больше кода, тем больше программист работает, и, следовательно, выше его оклад. Шустрые индусы быстро сообразили как обманывать неквалифицированных заказчиков.
По некоторым критериям выделяют «японский код» (идеально сформулированная задача – заказ для американских программистов – заказ выполняют нанятые программисты из Пакистана – отладка американскими программистами – мутант, живущий вопреки всем законам природы), «русский код» (код без всяких комментариев и пояснений, если считается 2х2=4, то в программе будет отображено: 2х3 ≠4, 2х4≠4, 2х5≠4 и т.д.), «китайский код» (создан простым и надёжным методом copy-paste, на основе готовых примеров; создатели подобного кода часто не представляют, как программа работает «изнутри», на аппаратном уровне) и др.
Подобные «национальные» ошибки устранять сложно. Быстродействие современных компьютеров позволяет не замечать разницу между программой в десять строк и программой в миллион строк. Отличия будет проявляться только в количестве найденных уязвимостей. Продолжительность отладки криво-написанного кода, в конечном счёте, не имеет значения. Отсутствие ошибок в коде ещё не означает отсутствие неполадок во всей программе.
Современное программное обеспечение ненадёжно, непонятно, а часто – опасно. Если вы купите велосипед, вы сядете на него и поедете. С программным обеспечением всё гораздо сложнее. Конечно, времена когда софт требовалось дополнительно «оттачивать напильником», остались в прошлом. Но и сейчас вы можете быть уверенным, когда-нибудь он откажет. Каждый компьютер и фактически каждая программа рано или поздно зависнут, вылетят или сделают недопустимую операцию. Хорошо, что речь идёт не о ваших внутренних органах, не т

Название
brutfaq
Статус
Страна
Литва
Город
Вильнюс
Url
club7492057
Id
7492057
Тематика
13 фев 2009 в 18:00
Вики страница
Не установлена
Сайт
Блокировка
Нет ограничений
Видимость
Открытая
Верификация
Группа не верифицирована администрацией Вконтакте
Популярность
У группы нет огня Прометея
Тип
Мероприятие
Возрастные ограничения
Нет
Стена
Открытая