В своё время мне довелось слышать такую классификацию что разработчики деляться на группы:
- неопытных — тех кто считает что всё надо делать идеально и входят в диссонанс при необходимости «некрасивых» решений;
- опытных — тех кто знает что они могут ошибаться, как и люди вокруг них и стараются экономить своё время на избежании наиболее частых ошибок дабы потом не проводить часы в отладке;
- гуру — убеждённых что программ без ошибок не бывает, главное это обеспечить чтобы программа работала несмотря на их наличие и позволяла их исправление несмотря ни на что. Также владеющих способностью предсказать где ошибки возникнут скорее всего и что с ними делать.
Классификация спорная, наверняка, её можно переформулировать и расширить, но главное в ней другое — понимание что чем сложнее разработка и конечный продукт тем его большую роль играют его недостатки и возможности их устранения. Это как если бы выбирать автомобиль — можно по фактуре и скорости, а можно по простоте и стоимости ремонта. Если автомобиль «для шика», то возможно что ремонт не так важен, а вот если он для бизнеса, то его роль выходит чуть ли не на первое место. Далее я затрону именно тему ошибок применительно к бизнесу.
Лично мне приходилось сталкиваться с этим не единожды. Вы когда нибудь видели приложения которые бы годами работали несмотря на то что внутренние компоненты сыпали исключениями, падали в Segmentation Fault и воскресали сразу же или по истечении короткого времени? Мне доводилось и не один раз. Причём эти приложения писали отнюдь не неопытные разработчики незнающие как ловить переполнение буферов, а как раз те кто понимал что они неизбежны и если не они так менее опытные разработчики вслед за ними обязательно такие ошибки наделают, а приложение должно жить в любом случае.
Простейший и наиболее очевидный пример — это веб сервера. В том же Apache уже сколько лет есть директива MaxRequestsPerChild, казалось бы, какой идиотизм, пусть все пишут правильный-чистый код, но нет, там есть опция при которой процесс принудительно умирает по принятию определённого числа запросов и причина банальна — минимизация ущерба от ошибок.
По тем же причинам автомобили оборудуют подушками безопасности, пассажирские сидения в самолётах — ремнями, эскалаторы перилами, а большие красные кнопки прячут за стекло — всё это меры по снижению риска и смягчению возможных последствий.
Большинству тех, кто занимался разработкой и поддержкой ПО не один год, ненужно объяснять причины неидеальных, но работающих решений, равно как и причины по которым подобную защиту от ошибок, а также обвязку приложения трассировочным логом делать необходимо.
Люди ошибаются, случайно, из любопытства, вынужденно, под влиянием эмоций или обстоятельств, но это факт.
Поэтому идеального кода не существует, это фантастика. Если в нём нет хоть одной ошибки, он весь одна большая ошибка.
Поделиться в соц. сетях
-
iobit
Microsoft Translate
Рубрики
- BI (3)
- CEP (1)
- IBM (13)
- Novell (6)
- WTF (1)
- apple (3)
- apps4russia (1)
- blogging (61)
- couchdb (3)
- data.gov.ru (273)
- datasets (115)
- diagramming (11)
- e-Government (993)
- eGov (1012)
- google (33)
- gtd (5)
- links (65)
- linux (19)
- microsoft (47)
- not so wtf yet (3)
- opengovdata.ru (218)
- opensource (57)
- productivity (2)
- saas (4)
- second life (2)
- security (6)
- semweb (16)
- sun (13)
- virtualization (16)
- vista (2)
- web (223)
- web 2.0 (108)
- whenyouknowthereasonswhy (1)
- wikileaks (1)
- yahoo (11)
- Без рубрики (4)
- Енот Поискун (17)
- Общественное благо (13)
- алгоритмы (73)
- алгоритмы (51)
- аналитика (19)
- антисео (5)
- бывает и такое (8)
- виртуализация (21)
- вопросы (21)
- госзаказ (173)
- задачки (1)
- идеи (29)
- из жизни (95)
- инновации (27)
- интересные проекты (7)
- информация (108)
- книги (2)
- метапост (1)
- открытое государство (116)
- открытые данные (70)
- поиск (93)
- почти несерьёзно (16)
- размышления (128)
- расшифровка реальности (10)
- робототехника (1)
- руководство проектами (3)
- скиур (19)
- социальные сети (46)
- социоранк (9)
- стандарты (22)
- стоит почитать (21)
- футуристика (1)
- электронное государство (1016)
- юзабилити (25)
- юмор (15)
Метки
антиспам госзакупки гослюди госуслуги датасеты дебаты извлечение информации инновации кузьминов метаданные навальный открытое государство открытые данные поиск почти без иронии публичность раскрытие информации расшифровка реальности систематизация социоранг социоранк стартапы форматы файлов футуристика #belyh #rucamp #socamp 94-ФЗ antispam apps4russia icamp icamp2009 md5 ogp open government searchme semweb sha1 ssl usability






