инструменты отладки в ЮЕ ’ V / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 
инструменты отладки в ЮЕ
’ V	
<■ ( »	|
	
■■	
	
	
	
	
|г^г-	
1	1| 1
1	
|г; .	
К '	
ж	у 1 !г л.Я
Нё> ■ыУ	р \ , . ||,it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор

Подробнее
инструменты отладки в ЮЕ ’ V <■ ( » | ■■ |г^г- 1 1| 1 1 |г; . К ' ж у 1 !г л.Я Нё> ■ыУ р \ , . ||
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть

Отличный комментарий!

Зависит от контекста использования.

Технически это лог, т.е. можно натыкать 100500 этих printf, и посмотреть до какого момента и в каком состоянии доходит. И если тебе нужно совершить например сотню итераций, а падает на рандомном этапе, то только так по сути и "дебажить". Причем дэбаг это ещё и остановка кода, что порой приводит к всяким нежелательным таймаутам.

Ну или ещё более веселое -- падает в релизной сборке, которую особо не подэбажишь.

Wolfdp Wolfdp 15.10.202419:43 ссылка
+12.6
"веселая" ситуация случилась пару месяцев назад.
В дебаге не воспроизводится
В релизе воспроизводится
Логируешь и в релизе не воспроизводится. Оказалось что движок подвисал чутка и время на логирование ему давало время что бы раздуплиться.
Вот это печальная ситуация.
Бандерівець Бандерівець 15.10.202419:56 ссылка
+17.9

"Швабры держат потолок"

чужой код
Меня недавно спросили, почему программисты ненавидят работать с чужим кодом. Долго думал, как донести до обычного пользователя всю суть пизфеца. Решил привести небольшую аналогию:
Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на
Имярек Имярек 15.10.202420:05 ссылка
+35.0
Зато любая IDE заменяется блокнотом.
Ты еще и двоичным кодом драйвер напиши, в блокноте.
В консоли!
сначала напиши консоль, потом драйвер.
Блокнот можешь в клеточку использовать
LcRL LcRL 16.10.202401:15 ответить ссылка 2.2
Сначала напаяй процессор
смотря чей драйвер. есть куча не сильно сложных сенсоров, например, для опроса которых нужен точный контроль времени выполнения, но протоколы не сильно сложны.
b.o.g b.o.g 16.10.202400:28 ответить ссылка 1.1
да как вы заебали с эти своим блокнотом Начали кодить в век когда никто уже без IDE не кодить и всем рассказывают, что можно. В спину себя тоже укусить можно, только придется сначала сломать спину или шею. Ну идите пишите в своем блокноте, какой нибудь нормальный современный проект. Причем не в notepad++ а именно в блокноте, голом без подсветки синтаксиса и прочих благ современных средств разработки. Позапускайтесь без проверки синтакиса, подебагайте без точек останова, потрекайте память встроенными инструментами ОС, поменеджирите зависимости и поподключайте библиотеки. И вот тогда уже расказывайте всем как можно IDE блокнотом заменить.
jk20001 jk20001 15.10.202420:13 ответить ссылка 27.3
Да что с тобой не так?
Zurgah Zurgah 15.10.202420:21 ответить ссылка -0.1

А ты на чём пишешь?

ебать.. у меня стажу больше 25 лет в этом дерьме.
перечислять, с чем я сталкивался и на чем писал смысла нет ( от assembler до brainfuck ).
я, блять, в своё время видел, практически лучи си у врат тангейзера.. становление и крах всяких новомодных свистоперделок.

Не надо мне рассказывать про "сложность" проектов. То, что сейчас пилится - не сложнее CAD систем, распознавания речи, текста и т.д. написанных 20 лет назад. Ну, блять, не сложнее. Всё то же самое. Меняются только персонажи в виде интерфейсов и растёт вычислительная мощность. И именно её рост расхолаживает и отупляет.
Я сейчас говорю не о 146% всего, а о 99% типового прикладного ПО, написанного на новомодных фреймворках и птичьих интерпретаторах типа пайтона и иже с ними.


есть одно правило технологичности - ты должен уметь в полевых условиях (при остутствии оборудования и инструментов) починить девайс\авто\ПО.
Если тебе для починки\диагностики твоего же оборудования\ПО нужно роботизированное спец оборудование с ЧПУ, то ты нахуевертил говнище.
b.o.g b.o.g 16.10.202405:44 ответить ссылка -2.3

Перефразирую - на каком языке ты писал код крайний раз, и как давно это было?

C++, shell, php, python, pl\sql, javascript
- с месяц назад
b.o.g b.o.g 16.10.202408:41 ответить ссылка 0.1

Какой раскидистый стек... А что за проект требует столь разномастых технологий одновременно? Прошу, можешь описать (избегая нда, ессно)?

да какой нда.
это разные пректы.
1 - шлюз автоматизации рассылки сообещений через wa, sms,телегу (shell, php, postgresql , redis)
2. пет проект - унифицированные iot девайсы 3 исполнений ( розетка, силовой блок и модуль опроса. у всех унифицированная прошивка с возможностью подклюения пула датчиков на esp8266 (еще отдельно надо под stm пилить). Тут и C++ и html\javascript (когда-то в 12 году разработанная библиотека - построения интерфейса) для морды и администрировании + сюда же мобильная разработка.

всякая обвязка серверной части типа демонов и прочего shell добра
ведь "умным" объект становится не за счет девайсов, а за счет системы принятия решений.

и т.д. и т.п.
Любой более-менее комплексный проект будет включать набор инструметов разработки. Для каждого процесса - свой вариант в системе мер: цена\скорость\качество
b.o.g b.o.g 16.10.202408:59 ответить ссылка -0.2
еще по принципу смс банкинга запилил жене бонусную систему... там тоже стандартный пул птичьих ЯП.
b.o.g b.o.g 16.10.202409:00 ответить ссылка 0.1

Аксакал и саксаул - неиронично выражаю моё увожение! Я правильно понимаю, что ты ни иде, ни менеджер бд не используешь - всё из нано и из шелл? Как много времени у тебя уходит на разработку с ноля? В строках код, конечно, мерять глупо, но всё-таки, - сколько в исходниках текста? У системного программирования, незнакомая мне специфика

Как раз подводил к мере объём работ/скорость разработки. Иде даёт как раз-таки скорость, и снижает порог вхождения, когда проект переходит из рук в руки. Бизнес хочет, чтоб задача вообще не требовала времени и усилий разрабов, а программист хочет долго писать относительно хороший код. Имхо - иде даёт идеальный компромисс - прогер не имеет гембеля с сопутствующим стеком (git/svn, bash/sh, ftp/sftp, компиляторы, дебаггеры, проверка синтаксиса html/xml/json/yaml/conf (вспомогательные), подсказки по фреймворкам, интеграции с контейнерами, запуск тестов, закладки в коде, шаблоны новых фйлов), а занят только лишь основной программой; и бизнес может взять дешевле менее опытного студента||самоучку, который в глубины сути не макался, и накостыловелосипедит рабочий прототип за условный месяц. Прогер сыт, бизнес доволен, разработчики иде тоже

Оговорюсь, что я б-мерзкий php-шник со всеми вытекающими - мы пилим долгострой 5 лет, типа очень гибкую crm, уже третий круг полной ротации всей команды. Это монолит (дешевизна размещения приоритетнее скорости работы, поэтому и пыха), в который входит ебучее дерево aka: клиенты-бизнесы клиентов-персонал бизнесов-задачи персонала-воронки задач-аналитика профита - суммарно около ~5к файлов по ~200 строк, разбито на 10 модулей, по ветке в гите на каждую. 2-недельные спринты, иногда много мердж конфликтов. Мануал по использованию, тянет на небольшую книжку -150 страниц ворда (со скринами и т.п). К чему я?

Я вообще не представляю, что бы мы без иде делали - самый лучший инструмент разработки, никогда не поменяю оконный интерфейс обратно на текстовый, потому что, - имхо, это станет совершенно невывозимым, - редкий бизнес смог бы позволить себе команду разрабов, условно, не на 1-2 года, а на 3-4, ещё и высококвалифицированных. И сидели бы мы тут такие умные, но без денях. Вот такое имхо

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

мне в своё время приходилось тратить дохера времени на написание и дебаг (да еще и литературы то не было нормальной, было мало кодовой базы, открывались новые технологические процессы для нас и для бизнеса)
фиксили часто, прямо на проде, мало где использовали контроль версий (ведь он активно стал юзаться не так уж давно по историческим меркам git - 2008)
оборудование было не таким мощным, браузеры бились насмерть (но мне, тогда никто не верил, что будет постепенный в них уход.. типа хули твой браузер, десктоп 2-х, 3-х звенка рулит)
именно потому, что каждая ошибка могла стоить овердохуя денях и воспитывалась ответственность за действия (что ты пишешь и как)

первые ide массового сегмента, такие как Delphi 1, MS Forms, Lotus порвали все шпингалеты... и тут началось.
но это было в основном под виндами

такой подход начал постепенно понижать порог вхождения. если для красноглазиков такие приблуды были лишь вторичным инструментом, то для все более новых поколений вся эта гонка стала основным скиллом.
и вместо принципов люди погнались за фактами.

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

и имеем то, что имеем - курсы по фреймворкам, которые являются надстройками над надстройками над надстройками над интерпретатором.

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

всегда было в среднем - на проект с нуля надо пол года (это рабочий прототип). что с ide, что без. Все - дело навыка. Все остальное - бюрократия.
b.o.g b.o.g 16.10.202411:39 ответить ссылка -0.9

Про использование везде и всюду - не совсем понял. На сервере у тебя всё равно иксов нет, и для условного мида, что-то уметь посмотреть/поковырять на сервере через ссх - это прям обязательный навык. А билдеры всяких форм так таки ускоряют именно красноглазую рутину. Может, я что-то упускаю?

Никогда не писал в блокноте. Сижу на винде. Мой путь- net beans, visual studio, eclipse и наконец jetBrains webStorm/phpStorm. На линухе недолгий опыт - vim+плагины

> и вместо принципов люди погнались за фактами

Факт - это произошедшее событие. Принцип - это компас "как правильно". Разве это противоположные вещи? Зачем ты пытаешься их противопоставить? Да, мощности выросли, поэтому оптимизация отошла на второй план, а забагованный продукт, может работать десятилетиями, не приводя к потерям. Это воплощение принципа "максимальный результат минимальными усилиями", и по факту, сверхуспешное. Разве не этим руководствовалось человечество в широком смысле, всю свою историю?

> рост числа продуктов

> покатился под гору

Сильно))

Я безумно рад, что мне не отпилило пальцы, как деду, не отваливается спина от работы в поле, как у прабабки, не надо ходить в церковную шк за 10км от дома, как у прапрадеда. Я от этого более здоров и физически, и морально. Зачем искусственно возвращаться к трудностям, которые мы вот буквально только недавно преодолели? Имхо, это контрпродуктивно

P.s. ты так и не ответил - ты используешь иде, или нет?

P.p.s Большие инструменты для объёмных вещей, - если у тебя стоит задача на плюсах, где кроме либ, - один файл кода код на 500 строк (густо в асм вставках, напр) - то я соглашусь, нахуй иде - оно влазит на один экран, да и ты по умолчанию сишник, который знает внутрянку (высокая квалификация). Но это такая крохотная частность, на фоне всех задач по автоматизации процессов, шо я ебу

сейчас это для меня уже хобби
b.o.g b.o.g 16.10.202408:42 ответить ссылка 0.1
а, бля, еще java ебучая в мобильном приложении
b.o.g b.o.g 16.10.202408:43 ответить ссылка 0.1

Это как? Ты с телефона код пишешь?

java при разработке мобильного приложения
b.o.g b.o.g 16.10.202410:02 ответить ссылка 0.1

Под андроид?

ога
b.o.g b.o.g 16.10.202411:39 ответить ссылка 0.1

Опиши проект, пожалуйста

это пет проект. для iot девайсов.
mqtt клиент дашборд с возможностью конфигурирования устройств.
каждый девайс можно конфигурировать вирт устройства и, датчиками, формулами задавая параметры рабиы, сети и тд.
сейчас это всё через конфиг файл с последующей загрузкой в девайс по http когда он в режиме конфига.
есть, например, дефолтное силовое реле, а ты хочешь из него сделать автономный выключатель по показаниям сенсора. вот девайс надо переконфигурировать и сделать не в блокноте через запросы к устройству, а в удобном приложении.
b.o.g b.o.g 16.10.202412:05 ответить ссылка 0.1

Лёгкое передёргивание, без агрессии: Ты ж понимаешь, что сделал пульт управления, чтоб не прикладывать усилий, по переливанию конфига в ручном режиме?) А если условный сын/дочь, захочет воспользоваться этим твоим пультом управления, - по твоей логике, ты не дашь этого сделать, чтоб он/она не пользовались, как обезьянка, всем готовым, а сами несколько лет с трудностями изучали этот вопрос (вместо того, чтоб заниматься в своей жизни интересными делами). Смекаешь?

вот такой силовой блок. от mcu до клеммника идет шлейф, и на клеммник можно подклюxать сенсоры\периферию типа АЦП\RS232\RF433 . работает как автономно, так через mqtt.
b.o.g b.o.g 16.10.202412:22 ответить ссылка 0.1

Крутяк) Спасибо!

Не за что!
b.o.g b.o.g 16.10.202412:28 ответить ссылка 0.1
во. нашёл. вот 3 вида устройств. у всех одна прошивка.
1 слева - это готовая розетка с usb портами для зарядки. я ее дорабатываю - меняю контроллер и модифицирую разъем. это, так сказать интерьерный девайс сбора данных по климат-контролю (в usb можно вставлять сенсоры и получать с них данные или управлять розеткой локально, а можно и удаленно.. как задача стоит) он нужен, когда нужна управляемая розетка или надо собирать данные, а ремонт уже сделан (воткнул в розетку и у тебя есть сенсор и розетка свободна, да еще и управляемая).
2 - вариант силового блока реле (на 16А - для большинства бытовых нагрузок). а, да. реле не простое, а с симисторным буфером, который используется вместо снаббера\искрогасителя (т.н. твердотельное реле)
и тоже можно подключать сенсоры в клеммник и отдельно клеммник для физической кнопки вкл\выкл
(чуть выше фото нормального силового реле на 30А, т.е . 4кВт спокойно можно включать)
3. модуль сбора данных с подключаемых сенсоров. его можно как к 5В подключать, Так и к 220В, если прикрутить вилку :-) (предусмотрено конструкцией).

Отличие от всех других iot - это готовые, унифицированные по взаимодействию и функционалу устройства. т.е .одно можно всегда заменить другим.
если нужен другой сенсор, или дополнительный сенсор - просто переконфигурируешь устройство и наслаждайся.

подключение модуля АЦП позволяет тебе использовать пул аналоговых датчиков любого вида с диапазоном 0-5В (но можно и через делитель)
подключение модуля RF433 позволяет использовать пул беспроводных датчиков (любых). считываешь их код, прописываешь как девайс в шлюзе и он будет перенаправлять в mqtt (а то сигналки, которые продаются в локальный сервер только через бубен.. и то не факт)
подключение модуля FR памяти - позволит локально логировать показания с возможностью восстановления.

ну и т.к. все через mqtt, то можно подключать любые другие девайсы

работает это уже 3 год. вот, надо допиливать мобильную приложуху.
	J fei:	
/•' " г	? » ’■ ш i	* 4 ■ «
b.o.g b.o.g 16.10.202412:47 ответить ссылка 0.1

Умный дом ) Ты красавчик! Люблю реактор, в т.ч. из-за таких людей как ты) Do what you do, bro! Не думал запилить пост о своих наработках?

Да. Меня вымораживает профанация, царящая в отрасли и в этом направлении в частности.
Пока не готово, чтобы пилить пост.

Как будет готов минимальный интерфейс для конфига девайса и сервер mqtt на обычном мобильном девайсе , чтобы не покупать непонятные хабы и исполнять танцы с бубном при развертывании на raspberry и т.д.,
а скачал приложение, запустил и настроил для локального использования.
тогда можно и запилить.
pcb развожу так, чтобы можно было делать самому, корпуса (кроме розетки, но это уже вообще отдельный девайс) в любом магазине (RJ11, да распаечная коробка).

а пока - приходится, порой переписывать драйвера сенсоров, от, казалось бы, известных контор. баги баги..
b.o.g b.o.g 16.10.202413:10 ответить ссылка 0.1

Ты продаёшь свои изделия? Занимался коммерческой разработкой?

не. это для личного пользования. для коммерции ещё не готово. в тех смысле норм. испытания нагрузочно-полевые всё прошло. один датчик второй год на улице живёт от -35 до +35
но комплекс ещё не завершён, да и добавить надо ещё пару устройств периферии
b.o.g b.o.g 16.10.202413:48 ответить ссылка 0.1
никому не интересно, что неудобно. по этому надо сделать удобно
b.o.g b.o.g 16.10.202413:48 ответить ссылка 0.1
Дык речь то не про починку с диагностикой речь о разработке с нуля) Или ты инженеру тоже предложишь из куска стали напильником двигло выпилить целиком?) Вот подрихтовать напильником готовое это можно, это никто не спорит, особенно на этапе прототипирования
Во-первых: зачем делать сложно, когда можно с тем же результатом делать просто? Только идиот выберет второе. И не надо про качество: криворукий уебан сделает говно в любом случае, гуру сделает конфетку в любом случае.

Во-вторых: твоё "правило технологичности" абсолютно устарело. В наше время оно работает с точностью наоборот: для любой современной задачи требуется ресурсы с половины мира, если ты можешь её решить без ничего - говно твоя задача, никому не нужное.
AjiTae AjiTae 16.10.202417:37 ответить ссылка 0.0
1 - ткани пальцем, где у меня про "сложно"?
2. ну конечно, ведь без такого подхода ты не сможешь продать свои узкоспециализированные навыки.
b.o.g b.o.g 17.10.202400:40 ответить ссылка 0.0
ну раз уж ты весь такой из себя "олд", давай рассказывай на чем пишешь?
часто ли пъезой от зажигалки байтики в памяти подправляешь?
сколько транзисторов нужно чтобы 8 битный алу паяльником собрать?
LcRL LcRL 16.10.202401:18 ответить ссылка 0.8
17 сентября 1991: Linux версии 0.01 (10 239 строк кода).
...
7 января 2019: первый релиз-кандидат Linux 5.0 (более 26 млн строк кода).

Да, ленивые шо пиздец. Всего-то в пару тысяч раз больше кода стало, чем у олдов.
Не ты ли автор?
jk20001 jk20001 16.10.202401:50 ответить ссылка -0.2
*Ирония*
К сожалению, Вы не прошли интервью, потому что не смогли написать в блокноте простейший вывод элементов массива в стандартный поток вывода. Спасибо за ваше время.
*Ирония*
ИмхО лучше использовать удобную IDE. Но! Отсутствие IDE не должно сильно помешать. Да и конкретной IDE сильно прирастать тоже не стоит.
Прирастать к одной не стоит это да. Но вот по поводу полного отсутствия уже нет, если на проекте нет IDE и все делается в блокноте это пиздец, и преступление против не только работников, но и здравого смысла. Да не обязательно делать через IDE вообще все, но она инструмент который позволяет не думать о множестве вещей, и если ее нет, то ценное время, которое можно потратить на нормальный, полноценный, и удобный кодинг придется тратить на ебку со всякими нюансами программирования о которых мы уже не вспоминаем благодаря IDE. Если проводить аналогию со стройкой то писать в код в блокноте все равно, что гвозди кирпичом забивать, можно, но молоток то сука удобнее, им и махать проще, а потому можно за то же время забить молотком больше гвоздей и меньше при этом устать. Так шо не, блокнот это для всяких низкоуровневых задач, конфиг подкрутить, теги на страничке быстренько переименовать ну и всякое такое по мелочи, но никак не в качестве замены IDE, их не потому придумали потому что в блокноте было заебись и он для всего был удобен и незаменим.
Лень было подробно уточнять... В моей голове временное отсутсвие не должно помешать особо. Не надо в крайности ) А так да, лучше использовать IDE. Да и отсутствие IDE не значит что остаётся только базовый блокнот, который ничего не умеет. Есть всякие продвинутые текстовые редакторы. Но в целом ты прав. И я бы сравнил лучше не забивание гвоздя кирпичом и молотком. А закручивание саморезов шуруповёртом или отвёрткой :) Накину только ещё, что отсутсвие ГУЯ не должно особо помешать профи для маленькой задачи. Уточнения. Отсутствие на временной основе. Да, не во всех сферах применимо. Дальше опять лень уточнять, просто не сводите в крайности )
Не должно сильно помешать? Ну это если калькулятор пишется, то да. А так это не то, что помешает. Просто убьёт проект, подняв его сложность на недосягаемый уровень
Mars53 Mars53 15.10.202423:03 ответить ссылка 0.1
ну я был на проекте связанный с акциями, бондами и остальной мишурой финансовой. Один из крупнейших в мире. Сидели в неовиме. Да, не иде, но и не просто редактор. КОгда к виму приноровился, работалось даже очень удобно. Хотя многих вещей особенно гуйных не хватало, это да.
Ага, "но да, по рассказам тимлида, настроить неовим то был тот еще квест"©
Твоя цитата) там просто из вима иде сделали, я так понимаю. А то что у неё гуй терминальный это уже детали.
Я ничего не отрицаю, но были и больные лбди которые на чутка переделаном виме сидели. Вот то изврат)
Я так и написал, что лучше использовать удобную IDE ) Но! Были большие телеком проекты, где большинство писали в продвинутых текстовых редакторах, вместо IDE. Правда это было очень давно. Проекты не умерли от этого, были вполне успешные, продукты сложные. Энв был стандартизирован из за театра безопасности. Те IDE которыми можно было пользоваться... проще было ими не пользоваться ) Любые запросы изменения в энве нужно было продавливать через огромную бюрократическую машину. И часто просто спускались на тормозах. Позже много где работал, к счастью такого маразма больше не встречал.
да ты без ide скоро и такие комменты не напишешь.
b.o.g b.o.g 16.10.202400:31 ответить ссылка -1.2
Главное, чтобы не жетбрейнз
Да потому как хуй ты поймёшь где что и как, а printf() твой бро, тебе пбать мозги не будет
MaXM00D MaXM00D 15.10.202419:36 ответить ссылка 16.6
А ещё лучше put(), чтоб лишние библиотеки не тянуть куда не надо.
Бывают баги, которые отладкой не ловятся, тогда трассировка вполне приемлемый метод. Профессионал от любителя отличается тем, что владеет всеми инструментами и не боится применить.
alteroz alteroz 15.10.202419:38 ответить ссылка 19.5
Только где эти профессионалы? Хожу с проекта на проект и везде, блять, синьёры принтами дебажат. Дебаггер? Не, не слышал. Удаленный реверсивный дебаг через SSH туннель к ноде на AWS - это вообще колдунство за гранью понимания.

git gui, менеджер сервисов, менеджер БД(локальной и удаленной через тот же SSH) - никто не знает, все "через консоль" чего-то ковыряют. И вот эти люди могут сказать, что "нафиг IDE, редактора достаточно" и я охотно верю, что ИМ будет достаточно.
frenzy frenzy 15.10.202421:59 ответить ссылка 1.6
большинство задач не инженерные, а промышленно-коммерческие. В них, как правило, типовые процессы связанные с интеграционным взаимодействием. ты не сильно отладишь код, работающий, например, с бд лнками через брекпоинты. они приведут к отваливанию этих линков или рассогласованности их работы.
большинство багов проявляется в реальных условиях, а не на стенде, а в реальных условиях никто тебе не даст систему дебажить.
для mcu тоже не всегда подходит. для некоторых вообще нет отладочных плат, другие надо мониторить в реальных условиях.
логирование придумали не просто так, а для отслеживания и локализацииточк отвала.
Вот и выглядит, что для быстрой проверки гипотезы дешевле, проще и безопаснее запустить из консоли, чем запускать внешеюю среду отладки.
конечно, если ты дизассемблируешь код, то без какого нибудь softice не обойтись
b.o.g b.o.g 16.10.202400:44 ответить ссылка 2.0
Кстати, тут подумал, а ведь современный тренд на observability и повсеместный мониторинг/трейсинг всего что можно и нелья - это же и есть printf на стероидах.
Для отладки в условиях близким к реальным существует удаленный дебаггинг и стейдж сервер. Тотальное логгирование тоже не всегда возможно. Например когда у тебя ходят чувствительные данные, вроде номеров кредиток, личной информации, платежной информации...

И не надо логи с printf() путать, пожалуйста.
frenzy frenzy 17.10.202400:10 ответить ссылка 0.1
Ты конечно прости, но в случае обычной, каждодневной работы, я сделаю git checkout -b/git add ./git commit -m '' в консольке быстрее, чем у меня tortoise откроется. Или ты прям каждый день мердж конфликты на сотни конфликтов решаешь?
При чем тут черепаха? У тебя в IDE все под рукой: и редактор и менеджер БД и т.д. Не нужно ничего дополнительно запускать. Но раз ты в это не врубился, то ты как раз тот чел, который научился что-то в редакторе делать и узнал о куче гуевых левых инструментов, а IDE для тебя кажется просто тяжелым редактором.
frenzy frenzy 17.10.202400:07 ответить ссылка 0.0
На самом деле ситуация абсолютно равноценная. Телефон под рукой, им просто и быстро щёлкнуть. Точно так же printf() или console.log() — это простой и быстрый метод глянуть чё-та по-быстрому, а не заводить полноценную отладку.
P.s. Ни слова о тестах.
Wave Wave 15.10.202419:42 ответить ссылка 2.5
все это барахло не умеет нормально в видео, а смартфон умеет
Не совсем. В обоих случаях тебе нужно добраться до исполняемой строчки. В IDE ты просто тыкнешь и получишь брейкпоинт, а тут нужно printf писть
Если printf(), то это какой-нибудь C, а значит еще и программу перекомпилировать придется. Где здесь быстрота?
frenzy frenzy 15.10.202422:40 ответить ссылка -0.9

Зависит от контекста использования.

Технически это лог, т.е. можно натыкать 100500 этих printf, и посмотреть до какого момента и в каком состоянии доходит. И если тебе нужно совершить например сотню итераций, а падает на рандомном этапе, то только так по сути и "дебажить". Причем дэбаг это ещё и остановка кода, что порой приводит к всяким нежелательным таймаутам.

Ну или ещё более веселое -- падает в релизной сборке, которую особо не подэбажишь.

Wolfdp Wolfdp 15.10.202419:43 ответить ссылка 12.6
"веселая" ситуация случилась пару месяцев назад.
В дебаге не воспроизводится
В релизе воспроизводится
Логируешь и в релизе не воспроизводится. Оказалось что движок подвисал чутка и время на логирование ему давало время что бы раздуплиться.
Вот это печальная ситуация.

"Швабры держат потолок"

чужой код
Меня недавно спросили, почему программисты ненавидят работать с чужим кодом. Долго думал, как донести до обычного пользователя всю суть пизфеца. Решил привести небольшую аналогию:
Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на
каждый раз это впомниаю когда к проекту инсталлятора возвращаюсь
Там плюсовый проект но на 80%+ был написан на Си
Потом он перешел другому деву и тот перепедалил на С++ (насколько смог)
Потом он перешел в мое владение, и каждое измненение это как ходить по минному полю.
Костыли поверх костылей поверх костылей

мне довелось работать над одним б-гопротивном продуктом (php laravel), где олды не постеснялись засунуть папку vendor под гит, и без зазрений совести, накостыляли половину бизнес-логики именно там. В вендорах типа все внешние зависимости/пакеты/репозитории, и вышло на то, что обновить их до свежайшей версии, было тупо технически невозможно =)

а наши фронтендеры, в той же конторе, использовали console.log с полутора килобайтами статичного текста, чтоб городить задержки ~70ms в замыканиях функций каких-то кривых плагинов =)

- Та шо же ты наделал?! На ее радикулит ты закончил школу, медицинский институт, стажировался в лучших клиниках, а она все лечилась... А вот ты, поц, взял, и вылечил!

Такого не видал, но у нас сейчас другие приколы
Новый проект разделен на 3 части (база - хромиум)
Кор где вся общая работа - 1я тима
Десктоп - мы
Веб - 3я тима (пишут и веб и морду для десктопа одномоментно)
Мы используем кор и веб
Все это 3 разных репо и разработка не пересекается почти.
Веб чет обновляет, мы подтягвиаем к себе изменения, сыпется проект ибо попереименовывали елементы или вообще всю морду перепедалили, а мы местами завязаны на это. Либо с какого-то хера меняют ту структуру данных (на жс) которую мы возвращаем из хромиума, ибо им так захотелось и ноют что отвалилось.
Ладно, это пол беды. Беда появляется когда тима с кора обновляет вспкдж с либами до более новых.
Мы тянем изменения, проект не собирается. ВТФ? Оказывается одна либа которая не обновляется часто, юзает другую либу более старой версии, которую кор типа обновила до более новой. И таких может быть с десяток.
Синкать эти 3 проекта то еще веселье. А когда они интерфейс меняют без предупреждений, мы охуеваем по полной.
Одной тиме надо задружиться с другой и бить третью.
DutchL DutchL 15.10.202422:15 ответить ссылка 5.1

ну, у вас или какой-то мисскомуникейт мимо всех ПМов, либо реально здоровая контора, что за всем не уследить. Особенно сочувствую и понимаю беду с заброшенными репозиториями, от которых зависят другие компоненты - это ёбаный змеиный узел (

а ещё я говна принёс похвастаюсь:

Отдельно хочу выделить такой леденящий душу пиздец, как проект . •' :.i'.	- им занимался больше и чаще всего
на протяжении всего времени. Его писали индусы, в самом прямом, и самом позорном смысле слова - 2 на Вордпрессе (лендинг и новости). 3 остальных - на Codelgniter 2 (совместим с php4 - нет

Еле нашёл скрин с кодом - единственное, что осталось от поделки, которую противестественным, еретическим и нихуя не одухотворённым образом, писали всамделишные индусы за копейки. Касесьва (sic!) обеспечивало правило "работает - не трогай" - они втупую копировали полностью файл-контроллер или функцию внутри, меняли таблицу чтения/записи, прокидывали новый роут, и... всё =) Чуть больше 50 почти одинаковых файлов, утерянные технические требования, и невозможность выдавить из клиента "а как оно ДОЛЖНО работать?", и, конечно, - абсолютно бараний отказ сжечь, и сделать нормально (ибо дорого). Бедолаги индусы там лет 10 "работали", очень держались, но таки сами в этой залупе и запутались)

О MnrifK\Otfllng\Prnriurt.php
О 0>Mng\Mndrl<;\Prndiift.php

public	function	updatelndividualCreditTerm (	
public	function	individúaleredittermSystemnotes (	
public	function	individualownSystemnotes(	
public	function	updateAddressData(	1
public	function	updatePhoneData(	1
public	function	updateEmailData(	9
public	function	updatePrimaryRole(	9
public

Ответь.
Оторви.
п ■ Геоман Греф может говорить слово «Agile» 7 раз в секунду ^н^Гплмерможет выкрикивать «Developers!» и раз в секунду У АУ’ nTS пешили наладить обмен информацией между собой, передавая игЬппмацию побитово: молчание означает 0, а слово - 1; и«Жвагься решили по одному байту по
не особо здоровая, но и не маленькая. У нас топы долбоебы, это да. От кор тимы требуют одно, потом от остальных быстро это интегрировать или просто апдейтнуть кор. А у нас вылазят приколы. Ну или просто багофикс приносит интересности.

Твой кат напомнил историю когда я только пришел работать в первую контору на стажировку, аутсорс. Пришел в контору проект-девайс сплиттера видеопотока для мака на 2 моника (писали китайцы). Попросили пофиксить пару багов. Чувак залез в код, и потом всем показывает - файлик с константами на более чем 11к строк. Тупо полотно. Мы смотрим с охуевшими глазами.
Дальше видим копипиздинг функций из файла в файл, тупо одинаковых Рекурсивные вызовы самих себя с теми же параметрами. И все понимают, что пару багов ты то пофиксишь, но сколько нагенеришь новых - хз. Без понятия чем закончилась эпопея с этим девайсов, меня от туда турнули раньше)

лол, перегоны без смазки какие-то ( А может быть так, что они не долбоёбы, а сволочи? И вам так спецом пердаки поджигают, шоб выматывать и подавлять? Типа - заебать, и доминировать. Есть прост и такой тип типОв, которые только этим и занимаются

Зато, подобные проекты и места работы (когда встречаешь неисправимый код), нехило прокачивают навыки "не усугублять", "не перемудрить", "всё предусмотреть" и "уважать чужой труд". А также ловкость и харизму при съёбах ) Одни ++ ))

не, именно долбоебы, мы с ними воюем постоянно. Уволить не уволят ибо девов не много, а работы много, и кто будет ее делать?
Самый епик что мы видели от них в этом году
Первый финансовый квартал: мы хотели столько денег, а получили меньше (причем вносили те изменения против которых мы были против ибо они будут бесить юзеров). Ну послушали, поржали и забили.

Второй квартал: Мы хотели столько а получили меньше, опять (хоть тут убрали те изменения, ибо юзеры начали жаловаться).
Теперь пошли вопросы - а схуя ли вы хотели столько (рост от года к году более 10% хотели)? А вы экономическую ситуацию в мире видели? Ладно, хрен с ним. на каком основании такие ожидания?
Ответ порадовал (нет) - мы посчитали что хотим столько, и запланировали.
Больше наша тима на эти сходки не ходит ибо безсмысленно и так без них тупости хватает.
В топах сидят и норм люди но там война за решения.

Кстати, наняли нового топа. И он курировал микропроект который писал я. В проекте не было особых требований, дизайна, только цель (говносамурайский путь). В итоге я запидалил как мне показалось правильно, с этим согласились. Но когда дошла очередь до дизайна (я его заделал как остальные продукты, почти), вот тут началась свистопляска... А я хочу ... -перенеси кнопку сюда, а покрась в другой цвет, а шрифт, а хуифт... И на все вопросы и возражения ответ был "мне надо посоветоваться". Я в один прекрасный момент заебался, в джире затегал всех кого можно и свалил в закат пока они там решали, делая ебучую видимость ебучей деятельности.

> Зато, подобные проекты и места работы ...
Я рад что меня от туда турнули, ибо если бы прогнулся хз каким бы сейчас был и был ли хоть в каком-то здравии. Контора гнилая, условия гнилые, проекты пиздец. Обычный аутсорс.
Я там с одним из старожилов общался, он рассказывал "что бы получить норм повышение по зп, надо что бы за год поработал минимум на 2х разных проектах. Я на одном проекте уже 2 года и на другие проекты не переводят хотя прошу, да и надоело на этом".

> мы посчитали что хотим столько, и запланировали

АХАХАХАХА, ну это BRILLIANT, не меньше!! =D) Не исключай, что это им нагадала цыганка, со щами "бля буду, 10% рост, свас5тыщ" )

> Но когда дошла очередь до дизайна...

Бэкендер
делает
фронт
Фронтендер
делает
бэк

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

> если бы прогнулся хз каким бы сейчас был

так и растёшь над собой, в попытках не дать себя подмять )

Горжусь тем, что сумел найти место, где меня недолюбливают, но таки ценят) Я отказываюсь делать правки, которые абсолютно, 100% пойдут во вред/откат/dev/null, иногда сам себе задачки придумываю и ставлю перед фактом "это надо, неделя времени", токсичу временами... Но мне контр-оффером подняли зп, когда сказал, что собрался валить - вслух сказали, что я таки чаще оказывался прав, чем не прав (когда дело касается кода и дедлайнов)

Ну так с дизайном надо слать к дизайнеру и пусть вместе с ним шрифтами играют. Фронт с готовым макетом работает.
AjiTae AjiTae 16.10.202418:00 ответить ссылка 0.0

нууу, мы часто использовали готовые решения админки (encore, orchid, nova), а там, если изменения касаются не стилей, но структуры DOM (какие-то плавающие полупрозрачные хуёвины вместо некоторых (но не всех) блоков, анимации (кто-то использует анимации в админке?), комбинированный инпут им не нравился), - не прям чтобы всё возможно за разумное время закастомить. Либо костылить, либо переносить под другую админку, либо писать свою. Сделать тему\цветовую схему на админку - да, выполнимо. Но некоторые клиенты прям сильно пытались перебирать харчами

Ну это какая-то херня. Все три проекта должны быть отдельными либами с фиксированными внешними интерфейсами, которые менять можно только на общем собрании. Внутри пусть чё хошь меняют, а интерфейсы не трогают.
Хз как вы так можете работать...
AjiTae AjiTae 16.10.202417:51 ответить ссылка 0.0
пока был лишь кор и основная апп так и было. Потом мы отказались от пары платных либ и свой аналог начали пилить, началась разработка другого проекта и "унификация"
вот и пошла такая чехарда. Через пол года думаю устаканится но я хз
лучи поддержки и понимания тебе. Сам в такой же ситуации
LcRL LcRL 16.10.202401:22 ответить ссылка 0.6
Haha, classic. Был проект на самописной RTOS с кооперативной многозадачностью, где уже уперлись в производительность проца. Но это потом стало понятно. В процессе отладки накыкали принтф, и всё магическим образом заработало. Потому что printf по завершении работы отдавал управление шедулеру, который запускал следующую задачу. Без printf всё исполнение зацикливалось на текущей.
Иногда это единственный способ отладки встроенного ПО, кроме осциллографа.
Эх, если бы. Иногда IDE нет, поскольку отлаживаешь удалённый скрипт. (или Дженкинс-джобу) Иногда инструмент есть, но не работает. Иногда инструмент, возможно, работает, но документации нет, так что непонятно как запустить. А ещё было, что вся убунта падала из-за того, что отладчик съедал всю оперативу -- а printf исправно работал.
В реалтайме отладка в IDE сасать
drovoseg drovoseg 15.10.202420:04 ответить ссылка -0.3

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

А ещё он может фотографировать расписание электричек/автобусов. Тогда это блокнот.

HashMK HashMK 15.10.202420:08 ответить ссылка -0.4
Давай, используй свои встроенные инструменты отладки на мультипоточном распределенном окружении прода!
Arakon Arakon 15.10.202420:16 ответить ссылка 4.8
Особенно если стейт приложения непрерывно меняется под воздействием внешних данных, которые нихуя не перестают приходить пока ты в отладке.
И проявляется баг при непонятном стечении обстоятельств раз в несколько дней на реальных данных.
меня одного раздражает ватермарка
Tutsi Tutsi 15.10.202420:28 ответить ссылка -1.6
А меня раздражает отсутствие вопросительного знака.
Хотя, если это утверждение, то соглашусь: пока не прочитал твой пост даже не заметил её.
нет ето бил вопрос. вот он кстати "?"
Tutsi Tutsi 15.10.202421:49 ответить ссылка 1.1
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power?
Discussion
♦ 154 +	W 479	& Share
^ BEST COMMENTS ▼
I like forks • 5h
hehe3301 • 7h
sudo rm -rf oceans/*/contents/
*.plástic
sudo rm -rf people/*/*.cáncer sudo rm -rf v
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор без перевода it humor geek it юмор

One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power? Discussion ♦ 154 + W 479 & Share ^ BEST COMMENTS ▼ I like forks • 5h hehe3301 • 7h sudo rm -rf oceans/*/contents/ *.plástic sudo rm -rf people/*/*.cáncer sudo rm -rf v
СТРАТЕГИЯ ОТДАРКИ
_ ПОЙМАТЬ ---------------------
О НАР ПРОБЛЕМОЙ Г\ ПРОЧИТАТЬ
{у Т>ОКУМЕНТАЦИЮ
ОТДАРИТЬ
О о помошью
VEБAГEPA
0 ВОСПОЛЬЗОВАТЬСЯ ^ УТОЧКОЙ
РЛЯ ОТДАРКИ
1-Я ССЫЛКА В ГУГЛЕ
О
5-Я ССЫЛКА В ГУГЛЕ
О
РЯШТГ("НЕЯЕ"); О
ЗАПУСТИТЬ ТОТ ЖЕ КОТ ЗАНОВО В HAVEЖVEJ ЧТО ОН
ЗАРАБОТАЕТ Q
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор стратегия отладки Дебаг

СТРАТЕГИЯ ОТДАРКИ _ ПОЙМАТЬ --------------------- О НАР ПРОБЛЕМОЙ Г\ ПРОЧИТАТЬ {у Т>ОКУМЕНТАЦИЮ ОТДАРИТЬ О о помошью VEБAГEPA 0 ВОСПОЛЬЗОВАТЬСЯ ^ УТОЧКОЙ РЛЯ ОТДАРКИ 1-Я ССЫЛКА В ГУГЛЕ О 5-Я ССЫЛКА В ГУГЛЕ О РЯШТГ("НЕЯЕ"); О ЗАПУСТИТЬ ТОТ ЖЕ КОТ ЗАНОВО В HAVEЖVEJ ЧТО ОН ЗАРАБОТАЕТ Q
Супер! Первая в мире Беспроводная MIDI акустическая гитара,Music,Wireless MIDI Guitar,Controller for Acoustic Guitar,ACPAD,Беспроводная MIDI акустическая гитара,Беспроводная MIDI,Беспроводная гитара,Первая в мире Беспроводная MIDI акустическая гитара. Стоит послушать! Заменяет всю группу!

Подборка
подробнее»

гитара midi geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор музыкальные инструменты

Супер! Первая в мире Беспроводная MIDI акустическая гитара,Music,Wireless MIDI Guitar,Controller for Acoustic Guitar,ACPAD,Беспроводная MIDI акустическая гитара,Беспроводная MIDI,Беспроводная гитара,Первая в мире Беспроводная MIDI акустическая гитара. Стоит послушать! Заменяет всю группу! Подборка
My PVC Instrument, DRS Talent Show (Original),Entertainment,BMG,Blue,Man,Group,PVC,ABS,Pipe,Instrument,Del,Rey,South,DRS,Talent,Show,Original,Kent,Jenkins,SnubbyJ,Snubby,Quin,Thames,LMU,Loyola,Marymount,University,Just,Awesome,America's,Got,Best,of,YouTube,Pipe Twins,The Cover,Daft Punk,HQ
подробнее»

труба шатал музыкальная пауза музыкальные инструменты до слез geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор anon

My PVC Instrument, DRS Talent Show (Original),Entertainment,BMG,Blue,Man,Group,PVC,ABS,Pipe,Instrument,Del,Rey,South,DRS,Talent,Show,Original,Kent,Jenkins,SnubbyJ,Snubby,Quin,Thames,LMU,Loyola,Marymount,University,Just,Awesome,America's,Got,Best,of,YouTube,Pipe Twins,The Cover,Daft Punk,HQ