metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-21 05:55 am

Зло какое-то

Школьный Линукс и входной порог разработки

Борландовские Паскали, С и тому подобное работали под досом без плясок с бубном и ставились простым копированием.
Дельфи в 1997 году поставилась на 95 винду и заработала сразу. За день можно написать прототип DB приложения, вообще видя среду разработки в первый раз. Visual C в то же примерно время - то же самое, разве что писать чуть сложнее, это вам не RAD.
Вижуал студия с дотнетом в 2006 вроде бы году - аналогично, поставил, за день разобрался.

А в линуксе до сих пор какое-то вуду, стоит только выйти за рамки стандартных задач.

[identity profile] denisioru.livejournal.com 2010-08-21 11:00 am (UTC)(link)
1. Вот и я про то же. "Мне не надо, значит говно и никому не надо"
2. Кроме Си есть ещё другие языки.
3. Изменение кода (исходника) в момент отладки. И продолжение отладки с применением изменений.

[identity profile] denisioru.livejournal.com 2010-08-21 11:01 am (UTC)(link)
Отвечу Вашими же словами "кто меня знает - тот в курсе".

[identity profile] dmzlj.livejournal.com 2010-08-21 11:03 am (UTC)(link)
Там все таки не дети приходят. У меня такое ощущение, что когда человек приперся в институт, не умея программировать --- уже многое поздно.

[identity profile] theiced.livejournal.com 2010-08-21 11:03 am (UTC)(link)
>Работа в одном потоке в гуишной проге с неебическими структурами данных. Их визуализировать в лог и потом анализировать заебешся, если честно. Это еще хорошо, когда у них встроенные методы дампа есть, но без этого - проще запустить в VS и посмотреть на значение переменной (оно из ее типа автоматом делает гуишный дампер хитрый).

если методов дампа нет - то у вас уже всё плохо и проект находися в большой яме с говном. у меня методы дампа есть _всегда_, я живу в паралельном мире.

>Еще один вариант: когда для отладки логами нужно поставить вызовов этих логов десять штук, но на один раз - быстрее запустится под отладчиком.

На один раз быстрее, на два быстрее, а на сотый уже будет медленее. Логирование, при должном опыте, пишется одновременно с основным кодом и опять же, как и методы дампа, есть всегда и сразу.

>И еще - если нужно отследить стек вызовов какого-то метода, а в рунтайме этот стек недоступен. Слава богу, в дотнете такого не бывает, а вот в дельфях и еще где-то - только отладчик, безальтернативно, стек вызовов в лог вывести невозможно.

Честно скажу, необходимость отслеживать стек вызовов возникала у меня всего несколько раз. Но для этого у меня уже было логирование вызова методов (с LOG_LEVEL_DEBUG) сразу ;]

Ребе, это просто чуть-чуть другая культура написания кода. Ну и вы же понимаете, в продакше логи нужны всегда. Ведь бывают случаи - ёбнулось всё и непонятно что вообще случилось, повторится ли и кого подвешивать к люстре за яйца.

[identity profile] denisioru.livejournal.com 2010-08-21 11:04 am (UTC)(link)
1. Не надо мешать мух и говно. Я в курсе что такое логирование. Я говорю - про отладку, а не "проблема выявляется исключительно на боевых серверах с боевыми запросами и исключительно в релизном билде". Я предпочитаю иметь выбор между "отладчик и/или логирование" или "только логирование"

2. Я утрирую, равно как и Вы.

[identity profile] theiced.livejournal.com 2010-08-21 11:07 am (UTC)(link)
1. я там метаклассу ниже уже объяснил почему никому не надо.
2. для которых тоже достаточно логирования. а ещё, сююююрприз, есть языки в которых отладчика вообще не предусмотрено ну или ситуации когда из всех средств отладки есть одна (адын, 1, I) зелёная лямпочка и один осцилограф (e.g. написание биоса для кастомной материнки - тоже то с чем я реально сталкивался).
3. ёбните меня лопатой. я в самом страшном кошмаре про крещение меня в православнутом храме не смогу себе представить зачем это может в принципе понадобиться.

[identity profile] theiced.livejournal.com 2010-08-21 11:07 am (UTC)(link)
см. ответ на пост ниже.

[identity profile] theiced.livejournal.com 2010-08-21 11:10 am (UTC)(link)
1. зачем нужен отладчик если _уже_ есть логирование.
2. я не утрирую, я нагло и жирно троллю.

[identity profile] denisioru.livejournal.com 2010-08-21 11:11 am (UTC)(link)
1. Это сугубо Ваше мнение. У меня мнение другое, и пока мне не лень - я тут его освещаю.
2. Мы про RAD или где? Причем тут биосы для материнки? Вот товарищи тут все таки как то пишут прошивки для приборов на С и достаточно низком уровне. Могу поинтересоваться как они отлаживают.
3. :))))))) добро пожаловать в страну возможностей, которым до опенсурс ещо дососать немного, лет 10.

[identity profile] denisioru.livejournal.com 2010-08-21 11:11 am (UTC)(link)
1. Блядь. Зачем нужна машина, когда есть велосипед или трамвай.

[identity profile] metaclass.livejournal.com 2010-08-21 11:16 am (UTC)(link)
У меня в продакшене логов столько, что иногда клиенты плачут, просят сделать их round-robin, чтобы место не жрали. У меня не линукс, logrotate нету под руками к сожалению, хорошо хоть log4net сам ротатить умеет.

Ну вообще у вас все правильно написано. Тем не менее - стек вызовов нужен, безальтернативно. Сделать лог, по которому его можно восстановить - это пиздец, нужно логить вообще все, что выполняется.

[identity profile] nivanych.livejournal.com 2010-08-21 11:17 am (UTC)(link)
Помнится, в подъезде у знакомого выбили лампочки и не вставляли с неделю (!).
Перед подъездом сверху кто-то написал "Добро пожаловать в ад!".
А через некоторое время кто-то подправил надпись, и получилось -
"Добро пожаловать в зад!" ;-)

[identity profile] theiced.livejournal.com 2010-08-21 11:17 am (UTC)(link)
1. как то так получается, что моё мнение почти всегда (увы, бывают и промашки, но редко) оказывается правильным.
2. мы про отладчики вообще. они есть не везде а не нужны таки везде. поинтересуйтесь.
3. реквестирую сюда адекватных людей которые мне расскажут про практическое применение данной "фичи".

PS. есличо - я так общаюсь всегда и таки и в реальной жизни тоже - не нравится - нахуй там.

[identity profile] theiced.livejournal.com 2010-08-21 11:18 am (UTC)(link)
1. не-а. зачем нужна машина на педальном ходу если уже есть нормальная машина на бензине и три цистерны с бесплатным бензином.

[identity profile] denisioru.livejournal.com 2010-08-21 11:18 am (UTC)(link)
Отладчики не нужны! хыхы так бы и писал сразу, к чему эти вводные все.

[identity profile] theiced.livejournal.com 2010-08-21 11:21 am (UTC)(link)
я, вроде, так и написал.

[identity profile] theiced.livejournal.com 2010-08-21 11:25 am (UTC)(link)
int foo(int bar, char *baz, huita *bee) {
  LOG(LOG_LEVEL_TRACE, "CALL: foo(%d, %s, %s)", bar, baz, huita_dump(bee));


не? пишется на полнлом автомате, тратятся на это секунды.

[identity profile] nivanych.livejournal.com 2010-08-21 11:27 am (UTC)(link)
Во-первых, разные варианты лиспо-подобного были давно.
Во-вторых, при некотором желании, можно было получить вполне нормальный ML, а это заметно лучше паскаля и даже оберона2.

[identity profile] metaclass.livejournal.com 2010-08-21 11:28 am (UTC)(link)
Затем при рефакторинге меняются имена методов, списки параметров, и прочая. И вслед за ними - править все логи.
Кстати о huita_dump - строку возвращаемую кто удаляет?

[identity profile] theiced.livejournal.com 2010-08-21 11:28 am (UTC)(link)
(загробным голосом)

а ещё для этого можно сделать в емаксе маленькую функу - тогда всего один хоткей будет тратиться (или вообще по вводу после объявления функи - о - ша допишу, а то лень было).

[identity profile] ex-svinonra.livejournal.com 2010-08-21 11:32 am (UTC)(link)
не знаю этих страшных слов. может где-то и были. а мне, школьнику в сельской местности были доступны в школе ХЗ-ЧТО-СОВЕТСКОЕ, потом у меня появился УКНЦ а у друга спектрум. первые на селе.
на укнц я мог изучать только бейсик. а вы говорите.
и изучали и клепали. и игрушек почти не было (чему я безумно рад, ибо мы сами сидели и клепали свои поделки. учились так сказать)

[identity profile] nivanych.livejournal.com 2010-08-21 11:35 am (UTC)(link)
У меня было так же, и возможность сидеть
даже на XT'шке появилась очень не сразу.
И кстати, было бы горааздо прикольнее,
если бы в том же спектруме был лисп.
Не думаю, что работало бы сильно медленнее
того самого встроенного васика.
Лисп был, но в чём в нём такой кайф,
чтобы специально загружать его с кассеты,
объяснить было некому.
Да и разговор был про альтернативы паскалю.

[identity profile] theiced.livejournal.com 2010-08-21 11:36 am (UTC)(link)
в стуктуре тупо есть char[xxx] __dump; в отладочном режиме - простейшее решение. есть эзотерические решения на диких макросах (выделение памяти специальным макросом, заносящим выделенный адрес в __dumps и освобождение "своих" строк в конце вызова LOG (написал лет так 8 назад, использую до сих пор).

[identity profile] theiced.livejournal.com 2010-08-21 11:39 am (UTC)(link)
я в 5ом классе на байте (не на своём - он тогда стоил вполне ощутимых денег - как то треть месячной зп отца - дааалеко не самой мелкой) написал свой интертрепатор лиспа (на бэйсике!). потом уже заработал на спектрум...

[identity profile] ex-svinonra.livejournal.com 2010-08-21 11:41 am (UTC)(link)
ну я же оговорился ) у меня полный доступ *читай вледел миром* только на укнц. на спектрум мы ходили играться )
потом уже появился первый 286 на работе у матери, туда вечерами украдкой ходил. запускал паскаль и тихонько сидел, шоп нихто не знал

Page 5 of 12