Comments 40
В одной программерской конторе во Владивостоке, которая в далёкие 90-е разрабатывала софт для администрации города и районов, оплата была за объём исполняемых файлов… Вот где простор для творчества!
char make_program_look_big[100000000];
как минимум, библиотеки статически слинковать в бинарник…
Возможно, в Альфа-Банке всё ещё платят за строчки
Пост короткий, это так, но добавлять что-то своё в перевод (а это перевод) просто ради того, чтобы пост был длиннее — это чуток противоречило бы и идее поста, и здравому смыслу.
Особенно в вебе. Не нужны гидраторы, валидаторы, репозитории и фабрики, чтобы сделать SELECT * FROM `users` WHERE id = 1;
(где-то видел такую картинку).
Если бы я писал статью каждый раз, когда делал код более функциональным/оптимальным/и т.д., и при этом одновременно уменьшая его объём — стал бы одним из самых плодовитых авторов на Хабре…
Пиши, интересно же!
1. Получаешь задачу на доработку существующего функционала.
2. Находишь код, в котором это надо сделать. Видишь простыню на тыщу строк в одном классе. Всё ярко светится предупреждениями среды разработки.
3. Делаешь рефакторинг, уменьшая объём кода и яркость свечения.
4. Добавляешь код непосредственно нового функционала.
По итогу получается кода меньше, а функциональности больше. Да, не рекомендуется делать сразу и рефакторинг и доработку, но у меня в таких вещах как в анекдоте про Ржевского — "можно и по морде, но обычно таки впендюриваю"…
Одни из самых ярких/жутких случаев — когда анализ данных или построение отчёта делается путём вытаскивания исходных данных (никак не агрегированных) из СУБД на сервер приложений, и там уже в циклах осуществляются вычисления. Много запутанного кода, который обрабатывает мегабайты (и десятки и сотни мегабайт) данных ради получения нескольких чисел на выходе. Заменяешь всё это на один-два SQL-запроса средней сложности, получаешь уменьшение количества кода в разы, и увеличение производительности на порядки (да, нередко более чем на один порядок)
if (some condition)
bool_value = true;
else
bool_value = false;
в такое:
bool_value = some condition;
а так же разбирать конструкции с else if.
В одной пластилиновой местности руководитель центра разработки захотел оценивать аналитиков по количеству слов в ТЗ. Теперь он там генеральный директор.
Именно так возникло понятие «индусский код», когда индусам платили за количество строк, а не за качество. И мы видели шедевры типа этого:
bool value;
if(value.ToString.Length() == 4)
return true;
else if(value.ToString.Length() == 5)
return false;
else
return !true && !false;
И в СССР такое тоже было, когда поэтам платили за строки. Тогда хитрый Маяковский стал писать слова лесенкой
И мы видели шедевры типа этого:Индусы в этом смысле таланты.
Мы когда работали на апворке (вроде, не помним уже, давно было), так случайно попали в команду к индусам.
Вот тот код что Вы приводили — никто руками не писал конечно, он автогенерился. Но генерилось буквально всё — раздувая код в разы. Это если заказчик платил за строки.
А если заказчик платил за время, то еще любопытнее, работали под запись, а потом включали плеер на другом компе со скоростью 0.2-0.8х. Скриншоты, мониторинг параллельных приложений — да на здоровье, мониторьте.
Не выдержали такого трэша, доработали в своем стиле проект, разругались и свалили:) Зато стало понятно как они работают с рейтом от 5 баксов в час, ага.
int a = 0;
if (true) {
if (true) {
.....
a++;
....
}
}
#if 0
char *c = {\
Война и мир\
ЧАСТЬ ПЕРВАЯ\
\
I\
\
– Еh bien, mon prince. Genes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous previens, que si vous ne me dites pas, que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocites de cet Antichrist (ma parole, j'y crois) – je ne vous connais plus, vous n'etes plus mon ami, vous n'etes plus мой верный раб, comme vous dites.
...
int a = 0;
if (true)
{
if (true)
{
.....
a++;
....
}
}
![image](https://habrastorage.org/getpro/habr/comment_images/9e5/7cc/d1f/9e57ccd1fcb0e497af367305c5cded87.jpg)
Этим разработчиком был Альберт Эйнштейн.
О чем статья то вообще? Точнее, зачем?
Корпоративный блог, очевидно же. Маркетинговый отдел постановил что надо продвигать компанию на хабре. Копирайтеры сели морщить ум, о чем бы написать. Ну а дальше просто — наверняка у копирайтеров есть ресурсы типа Тостера, где они спрашивают, "мне бы анекдот на компьютерную тематику". Им отвечают — folklore.org. Дел на 5 минут, а план по маркетиингу на неделю выполнен.
Совсем не факт. У меня, конечно, данные двухгодичной давности, но тогда Альфой блог на Хабре рассматривался как забавная зверушка, никакой пользы не приносящей. Можете глянуть в моём профиле статьи написаные для блога Альфы — публиковались они примерно по такому алгоритму:
- Ну вот, дописал… Хм, а у нас вроде блог на хабре был. Позвоню ка HR-овцам.
- [спустя десяток звонков отыскивается ответственный за блог]
- А я вот статью написал, можно нам в блог?
- Скинь мне, я сегодня почитаю, убежусь, что там никакого криминала и тогда завтра разместим
−2000 строк кода