Comments 11
Немножко побрюзжу. Посмотрел код 1-го проекта, в частности этот файл.
В одном файле не 6к строк смешалось всё: IO, парсинг, генерация отчета, структуры данных, алгоритмы (разные) — неужели ни разу не возникло желания разбить это по отдельным файлам?
- Такое ощущение, что код даже не думали особо оптимизировать под производительность. Например много циклов, где на каждой итерации создаётся новый ArrayList (а ведь можно было бы переиспользовать); коллекции из примитивов (ArrayList, Set); сами цепочки хранятся просто как String (хотя это, вероятно, вынужденно, так как поиск реализован через регекспы, а не через специализированные алгоритмы).
О, госсподи, давно я такого не видел к своему счастью. Так это типичный юниорский код. Code Review не проводится. При наборе спрашивают типичные вопросы, одинаковые и для юниоров и для сеньеров, единственное отличие что сеньер не имеет право "неправильно" отвечать. При собеседованиях умение нормально делать декомпозиции задач на подзадачи крайне редко кто проверяет. Отсюда и код, подобного которому я к счастью очень давно не видел :). Но у этого кода есть один плюс. Для его поддержки требуется больше народа. Если больше народа, больше денег получится выдоить с заказчика и следовательно больше прибыль получит контора. И потом можно будет еще раз контрактик взять на переписывание такой лапши, якобы ради миграции на какую новую модную технологию.
То взрывообразное развитие которое последние 5 лет происходит не распологает к тому, что бы заниматься долгой поддержкой давно написанных инструментов.
Даже без поддержки. Если писать в спагетти стиле — количество багов будет такое, что релиз будет лет через 10. И количество тестировщиков должно быть неимоверное. Хотя, возможно я конкретно к этому проекту несправедлив. В другом проекте навскидку все вполне нормально выглядит, естественно я не вникал, но навскидку ничего криминального, за сердце не хватаешься. А этот проект просто тупо переписывали как есть с одного языка на другой. Основной критерий — чтоб оно скомпилировалось и заработало также, как и ранее. Заработало хоть как то, отдали и забили :).
Как раз недавно читал книгу о квантовой биологии. И в одной из глав описывалась теория возникновения жизни, как вообще появилась ДНК, а до нее РНК а до нее еще более примитивные химические структуры саморепликаторы.
Имеет смысл уже сейчас начать изучать это дело, благо это плюс в себе в копилку на фоне грядущих БОД, более повальной роботизации-автоматизации и подобных социальных потрясений, после которых ещё неизвестно как всё сложится в итоге. Говорят, кто будет владеть роботами — тот выиграет больше всех. Однако знания, по идее, тоже должны давать выигрыш хотя бы в виде преимущества над всеми остальными, которых жизнь выбросит за борт.
P.S. Вспомнилось ещё, как я в технологическом универе на первой лекции по Микроконтроллерам сказал один из вариантов подобной техники: «электронная память для человека, вся необходимая инфа туда складывается и не надо тратить минимум 4 года в универе». Профессор хмыкнул и добавил вариант в список =)))
Просто о сложном: что нужно знать о биоинформатике