|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 15 Feb 2003 02:04:56 To : Aleksey Barabanov Subject : Re: BadMEM --------------------------------------------------------------------------------
Hi, Aleksey!
>>>>> "AB" == Aleksey Barabanov <alekseybb@mtu-net.ru> writes:
>> 2. гуру не хочет чтоб его порграммы поддерживались
>> -> никакой _другой_ гуру, не будет копаться в запутаном коде просто так.
AB> No comment. Гуру непознаваем и неподражаем. А иначе он не Гуру ;)
значит, следуя ранее выскзааной логике (ныне поскипаной), софт написаный
гуру по определению unsupported.
Практика показывает обратное.
>> AM> Так как у молодежи от такого количества потребляемй травы, которая
>> AM> нужна для понимания сложных участков кода без единого комментария,
>>
>> гуру, которые Гуру, пишут комментарии.
>>
>> Хотя-бы для того, чтоб через пол года, когда к нему прийдет заказчик
>> (новый или старый), принесет кучу денег, и попросит "поддержать свой
AB> Сказочки ;)
в Вашей реальности? Может быть, но нигде не скзаано, что Ваша реальность,
единсвенная из доступных реальностей ;)
AB> Заказчик никогда, если он не идиот, просто так не связывается с софтом
AB> подобного рода.
заказчику, на самом деле пофиг, пока оно работает, и решает его прикладные
задачи. Сколько людей "связываются с Windows"? ;))
AB> Пример тому линукс и его неприятие "цивилизованным" рынком.
опять-же, может быть в Вашем понятии "цивилизованого рынка", это и так.
В моем - все чуток по-другому.
AB> А если у заказчика судьба такова, что ему без гуру не обойтись, то он
AB> заранее знает на что подписывается ;)
У заказчика судьба работать, выпоняя свои прикладные здачи. Кто сделает
ему более выгодное предложение, ему всеравно. Его волнует "конечный
результат", с необходимым качеством (большой список критериев), по
максимально низкой цене.
>> софт, который он когда-от писал", не вспоминать (мучительно), почему он
>> тут написал именно так, и что мешало ему написать совсем по-другому,
>> по-правильному (он ведь за пол года кучу всего интересного узнал, и
>> теперь он "на пол года правильнее" ;).
AB> Да именно это и является той чертой, что отличает гуру от лабуха.
AB> Лабух (или "лабарь" - тот который "лабает") будет переделывать свой
AB> старый код, а гуру выставить цену на новый и ни за что не вернется к
AB> старому.
вернется. Чтоб выкинуть... Кто-же должен на это решиться? ;)))
AB> А иная политика обслуживания кода называется суппортингом. Это когда
AB> заказчик не выскакивет со своими бабками как чертик из коробочки а
AB> заранее платит за продолжительное внимание гуру ;)
политика, совершнно одинаковая. Просто нужно понимать, что тот "гуру", к
rоторому обращается end-user, на самом деле, при более близком
рассмотрении, фактически два гуру. "Гуру программинга" и "Гуру сапорта".
Первый понимает что нужно выкидывать старый код, по истечению некоторого
срока, второй понимает, что нужно слешать заказчика, как говорить с ним на
одном языке, как это все переводить на язык понятный гуру-прогармминга, и
тд.
Еще бывает что это "три гуру" - плюс Гуру-Маркетинга (Sales-Guru), которые
знают как менять лозунги, как говорить приятные для ушей заказчика слова,
за котоыре они фактически и платят деньги ;)
Да мало-ли каких Гуру бывает? ;)))
>> Он это прочтет в комментариях. Которые сам для себя написал. Именно
>> потому что он Гуру. Так, ПРОЩЕ. А проще, значит надежнее. А надежнее -
>> значит лучше. А за лучшее обычно платят больше ;)
AB> Главное качество гуру - пренебрежение мелкими деталями ради создания
AB> великого.
не знаю, не проверял. Hо навскидку - не пренебрегают.
AB> Даже если гуру закомментировал свой код, он не будет перечитывать
AB> комментарии ибо узучив код по-новой возможно он найдет более
AB> оптимальное решение.
Перечитываьт комментарии нужно, хотя-бы из уважения к тому, кто их
написал, или для элементарного поиска грамматических ошибок, чтоб
придраться и постебаться ;)))
AB> Значит комментарии гуру не нужны.
нужны. Потому что написавший хороший комментарий не смог что-либо
передать В КОДЕ. Иначе, незачем бы было писать комментарий "код очевиден
сам по себе".
А если что-то "из кода не видно", то это наверняка какие-то грабли. Как
их обходили ранее - написано в комментарии.
AB> Чем выше класс гуру, там мнемоничнее для него выглядит код, который
AB> может представлятся чайнику вообще аброкадаброй.
Гуру-программинга ленив. Он не хочет заниматься ТУПЫМ САПОРТОМ. Значит
он будет стараться спихнуть это на молодого программера. Для того чтоб
"спихивание" удалось - нужно писать код понятный молодому, иначе ему
прийдется это все объяснять устно (в почте, итд), а это уже проще самому
заняться тупым сапортом (быстрее получится, и качественее), но ведь
ЛЕHЬ ЖЕ!
Логика побеждает. Писать простой и понятный код гораздо легче, чем
заниматься тупым сапортом, и уж теболее (несоизмеримо) легче, чем
объяснять молодому, "как работает непростой код". Кроме того, просой код
легче самому понять, когда молодой таки "не потянет", и прийдется
заниматься не тупым сапортом, а переработкой кода (refactoring). Да и в
результате переработки - код становится проще.
AB> А потом, зачем гуру возвращаться к уже созданному и отлаженному коду
AB> как только для решения тойже проблемы иным путем ?
чтоб не повторять ошибочные решения, который были отброшены пол года
назад. Или, наоборот, чтоб переосмыслить причины, по которым были
отброшены пол года назад решения, и некоторые из отброшеный
"реинкарнировать", учитывая новые знания.
AB> Hу а в таком случае, старое решение будет навязывать и старый способ
AB> мышления.
опыт, сын ошибок трудных.
Если кому-то хочется снова и снова совершать ошибки, он будет "писать
каждый раз с чистого листа". Это часто кажется проще.
AB> Комментированию или правильнее спецефицированию подлежат не тексты, а
AB> исходные данные и полученные результаты, другими словами todo и
AB> changelog.
угу, если эти "исходные данные" вообще есть. Примерно в 90% случаев
данные таки есть. Hо что делать в остальных 10%?
AB> Доказательство моих слов : вы много видели комментариев в коде
AB> линуксового ядра ?
я давно не смотрю код линуксового ядра, мне это не интересно (не было
инетерсно даже тогда, когда приходилось смотреть ;)
Случае когда "я смотрю код ядра через плечо человека, который этот код
правит" я не рассматирваю. Сотреть как работают другие люди можно
практически вечно... ;)))
AB> 99% этих комментариев это копирайт, ченьжелог и тодо ;)
Это проблемы (особенности, если будет так угодно) тех, кто пишет код
линуксового ядра.
Вот, первое что под руку попалось:
def __cmp__(self, other):
"""compare e-v-r via rpm.labelCompare
XXX check isinstance(other, self.__class__)
XXX check self.name == other.name
"""
return rpm.labelCompare(self.evr, other.evr)
две строки комментария (засунутые в docstring, чтоб было видно не только
при просмотре исходинка, но и при просмотре документации которая будет
автоматически создана по исходнику, и в интепретаторе), на ОДHУ СТРОКУ
КОДА.
А если подумать, то становится ясно, что это "две строки комментария", на
то, что HЕ HАПИСАHО кодом. По той или иной причине. (в данном случае,
во-первых, было лень, во-вторых ничего полезного бы не сделало).
Hо если это написать - будет навскидку строки четыре. Если подумать, и
написать хорошо - то может быть даже еще больше... ;))
а вот, второе
=== cut ===
# XXX ain't sure how costs should be encoded
# XXX actually, "METHOD" is method name, not method code
self.record_to_dom(_d, _root, _rec, (
("CODE", "act_id", 1, {"AUTH":"EXT"}),
("TYPE_ANLZ", "act_id", 1, {"AUTH":"INT"}),
("WL_CODE", "act_id", 0, {"AUTH":"WL"}),
("NAME", "txt", 1, {}),
("METHOD", "method_cd", 1, {}),
("BALLS", "cost", 0, {"unit":"1"}),
("PRC_MAT", "cost_material", 0, {"unit":"%"}),
("PRC_WORK", "cost_work", 0, {"unit":"%"}),
))
# if service definition does not belong to any named group,
# it is grouped under "root" service.
if _rec["BOUND_TO"]: _group_id = _rec["BOUND_TO"]
else: _group_id = "0"
=== cut ===
тут, примеры полезных комментариев.
1. исходных данных просто не было "ain't sure how..."
2. METHOD - термин, который звучит одинаково, но применяется по-разному,
уточняется контекст.
3. пояснется что сделано, именно для новичка, чтоб он не гадал что
такое _group_id = "0", а четко сразу понял - это "root service"
AB> Все комментарии в названиях переменных.
Если все так и есть на самом деле, то я рад за код линуксового ядра.
Там наверное все просто и прозрачно, и может быть легко выражено "только
кодом"... ;-)))
>> AM> едет крыша и они подаются в другие религии ?
>> молодежи просто плевать, на все ;)
AB> Это, типа, им, молодым, видней ;) Я им не судья ;)
"каждый понимает в меру своей распущенности" ;)))))
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/2541a21467aa.html, оценка из 5, голосов 10
|