Re[13]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 18:35
Оценка:
Здравствуйте, Marty, Вы писали:

M>Ну, сказал бы: "лапа, этот трэш я просто перепишу заново"


Это мы тоже проходили
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[5]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 00:49
Оценка:
Здравствуйте, Marty, Вы писали:

M>я там, сидя в горящем танке и положив ноут на сапоги убитого друга, переписал всё за две недели


Надежный танк, однако, коли за две недели дотла не сгорел.
Re[4]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 01:38
Оценка:
Здравствуйте, rg45, Вы писали:

R>А поддержка программного продукта это чья функция — не программиста?


Собственные творения обязан понимать и уметь чинить любой — хоть программист, хоть слесарь.
Re[5]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 04:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>А поддержка программного продукта это чья функция — не программиста?


ЕМ>Собственные творения обязан понимать и уметь чинить любой — хоть программист, хоть слесарь.


И когда программист уходит из конторы, поддержа продукта прекращается?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[6]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 05:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>И когда программист уходит из конторы, поддержа продукта прекращается?


Если оставшиеся программисты не в состоянии поддерживать продукт — да, примеров достаточно. Чтобы этого не происходило, одни конторы принимают меры, облегчающие программистам понимание и сопровождение чужого (а также и своего) кода, другие — нанимают программистов с развитыми аналитическими способностями.
Re[7]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 05:04
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

R>>И когда программист уходит из конторы, поддержа продукта прекращается?


ЕМ>Если оставшиеся программисты не в состоянии поддерживать продукт — да, примеров достаточно. Чтобы этого не происходило, одни конторы принимают меры, облегчающие программистам понимание и сопровождение чужого (а также и своего) кода, другие — нанимают программистов с развитыми аналитическими способностями.


А бывают еще и третьи конторы — где понимание "чужого" кода считается нормой. Для этого утверждается корпоративный стиль кодирования и на систематической основе проводятся code-review. И процесс поддержки продукта не завязан на авторов кода, коих множество. Вот мне только такие конторы и попадались почему-то. Совпадение, наверное.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 18.04.2020 5:16 rg45 . Предыдущая версия .
Re[8]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 05:16
Оценка:
Здравствуйте, rg45, Вы писали:

R>А бывают еще и третьи конторы — где понимание "чужого" кода считается нормой. Для этого утверждается корпоративный стиль кодирования и на систематической основе проводятся code-review.


Маленькое уточнение: понимание считается нормой до введения указанных мер, или после того, как они возымели действие? То есть, в какой доле контор к каждому из программистов предъявляется требование быстро и правильно понимать любой код, независимо от того, кем, когда и для чего он был создан?
Re[9]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 05:24
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>А бывают еще и третьи конторы — где понимание "чужого" кода считается нормой. Для этого утверждается корпоративный стиль кодирования и на систематической основе проводятся code-review.


ЕМ>Маленькое уточнение: понимание считается нормой до введения указанных мер, или после того, как они возымели действие?


Странно ты вопрос ставишь. Указаныые меры введены потому что понимание считается нормой. А не "до" или "после".

R>То есть, в какой доле контор к каждому из программистов предъявляется требование быстро и правильно понимать любой код, независимо от того, кем, когда и для чего он был создан?


Во всех, которые я видел. Все коммерческие фирмы существуют ради получения прибыли от производимого продукта. А содержание гениев, творящих шедвры, это уже не коммерция, а что-то другое.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[10]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 07:30
Оценка:
Здравствуйте, rg45, Вы писали:

R>Указаныые меры введены потому что понимание считается нормой.


Если бы понимание (снова уточню: достаточно быстрое и точное, а не абы какое) чужого кода (который, прежде всего, основан на чужом мышлении, чужом подходе, чужом стиле, чужом формате и т.п.) считалось (и являлось) нормой, то не было бы явной нужды в унификации этих самых подходов, стилей, форматов и прочего. Нравится одному писать по три goto на странице — и ради бога, любому понятно. Нравится другому записывать по нескольку составных операторов в одну строку — и это ради бога, любой махом разберется. Однако ж, зачем-то всю эту унификацию и стандартизацию поддерживают. Так зачем?

R>Все коммерческие фирмы существуют ради получения прибыли от производимого продукта. А содержание гениев, творящих шедвры, это уже не коммерция, а что-то другое.


То есть, с одной стороны, по-Вашему получается, что способности любого программиста к разгребанию и поддержке чужого кода, независимо от его качества, должны быть примерно равны его способностям к производству собственного. А с другой стороны, типовой программист, содержание которого экономически выгодно, с разгребанием произвольного кода, внезапно, справляется плохо, и почему-то нуждается в костылях вроде подробной документации, внятных комментариев, грамотного структурования, хорошего стиля и т.п. Мне в этом видится явное противоречие, а Вам?
Re[11]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 07:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>То есть, с одной стороны, по-Вашему получается, что способности любого программиста к разгребанию и поддержке чужого кода, независимо от его качества, должны быть примерно равны его способностям к производству собственного. А с другой стороны, типовой программист, содержание которого экономически выгодно, с разгребанием произвольного кода, внезапно, справляется плохо, и почему-то нуждается в костылях вроде подробной документации, внятных комментариев, грамотного структурования, хорошего стиля и т.п. Мне в этом видится явное противоречие, а Вам?


"Примерно равны", "подробная документация", "внятные комментарии", "костыли" — это откуда все взялось? Я сказал только то, что сказал. И избавь меня, пожалуйста, от необходимости отстаивать твои домыслы.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 18.04.2020 8:00 rg45 . Предыдущая версия . Еще …
Отредактировано 18.04.2020 7:53 rg45 . Предыдущая версия .
Re[5]: как определить используемый код
От: IID Россия  
Дата: 18.04.20 21:02
Оценка:
Здравствуйте, Marty, Вы писали:

M>Уже под Linux — +1


Не знаю в чём ты увидел плюс.

M>Вооот, уже 1) платформозависимый код выделили в отдельные подсистемы до тебя;


далеко не весь

M>2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


ой не скажи...
как начнутся танцы с форками, сигналами, потоками и синхронизацией — простота тут же испарится.
а если tty-specific вещи то выключайте свет, кидайте бомбы.

M>А десяточная консоль вообще без приседаний понимает escape'ы?


Только флаг выставить.

M>Кстати, раз зашла речь про Escape последовательности — может в курсе, как там в линупсе, при перенаправлении в файл кто их стрипает?


Вот видишь! А это только самая верхушка TTY айсберга. Попробуй сделать полноценный remote shell, чтобы и ^ ввод работал, и ncurses приложения — и на..программируешься и напляшешься.
Я не разбирался, но считаю что они просто перестают генериться, если выходной файл их не поддерживает. Проверка: какой-нить посылкой ioctl в out-хендл.
Например dmesg имеет параметр -L/--color. Пайпинг приводит к пропаданию цвета. Смена auto на always ВНЕЗАПНО возвращает ESC последовательности на выходе из пайпа.

M>Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.


Параметр добавил ?

M>И призовой вопрос — почему под виндой если я в MinGW-баше запускаю гит, то он вывод раскрашивает, а если я из своей проги запускаю гит, и свою прогу запускаю под тем же башем, то вывод выдается унылый одноцветный?


Зачем нужен MinGW баш, когда есть WSL ?
kalsarikännit
Re[6]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.20 22:11
Оценка:
Здравствуйте, IID, Вы писали:

M>>Уже под Linux — +1


IID>Не знаю в чём ты увидел плюс.


M>>Вооот, уже 1) платформозависимый код выделили в отдельные подсистемы до тебя;


IID>далеко не весь


Но это уже хоть что-то, по сравнению с портом нативного виндового в POSIX


M>>2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


IID>ой не скажи...

IID>как начнутся танцы с форками, сигналами, потоками и синхронизацией — простота тут же испарится.

POSIX таки проще сделать через WinAPI, чем WinAPI через POSIX. Даже с танцами


IID>а если tty-specific вещи то выключайте свет, кидайте бомбы.


А тут можно и выкинуть, если надо по-быстрому


M>>А десяточная консоль вообще без приседаний понимает escape'ы?


IID>Только флаг выставить.


Что за флаг?


M>>Кстати, раз зашла речь про Escape последовательности — может в курсе, как там в линупсе, при перенаправлении в файл кто их стрипает?


IID>Вот видишь! А это только самая верхушка TTY айсберга. Попробуй сделать полноценный remote shell, чтобы и ^ ввод работал, и ncurses приложения — и на..программируешься и напляшешься.


Ну, если полноценный remote shell — неотъемлемая и/или ключевая часть проекта — то да. Иначе — можно просто выкинуть всё вот это


IID>Я не разбирался, но считаю что они просто перестают генериться, если выходной файл их не поддерживает. Проверка: какой-нить посылкой ioctl в out-хендл.

IID>Например dmesg имеет параметр -L/--color. Пайпинг приводит к пропаданию цвета. Смена auto на always ВНЕЗАПНО возвращает ESC последовательности на выходе из пайпа.

M>>Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.


IID>Параметр добавил ?


Нет. Автодетект. В линупсовой версии isatty или как-то так, в виндовой — как-то аналогично над хэндлом stdio сделал.
Особых требований не было, просто для своих утилит решил вывод подраскрасить, если что-то пошло не так. Никаких пайпов и ничего какого-то сложного не предполагалось, кроме перенаправления в файл


M>>И призовой вопрос — почему под виндой если я в MinGW-баше запускаю гит, то он вывод раскрашивает, а если я из своей проги запускаю гит, и свою прогу запускаю под тем же башем, то вывод выдается унылый одноцветный?


IID>Зачем нужен MinGW баш, когда есть WSL ?


Семерка, сэр
Маньяк Робокряк колесит по городу
Re[7]: как определить используемый код
От: Privalov  
Дата: 19.04.20 08:56
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если оставшиеся программисты не в состоянии поддерживать продукт — да, примеров достаточно. Чтобы этого не происходило, одни конторы принимают меры, облегчающие программистам понимание и сопровождение чужого (а также и своего) кода, другие — нанимают программистов с развитыми аналитическими способностями.


Не понимаю, о каких оставшихся программистах идет речь. Я видел проект, который начинался в середине 70-х. До сих пор активно пилится.
Это я в самом дечале карьеры хотел все, что видел, к чертям переписать.
Однажды поучастствал в таком переписывании.
Re[8]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.04.20 09:13
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Не понимаю, о каких оставшихся программистах идет речь. Я видел проект, который начинался в середине 70-х. До сих пор активно пилится.


Вот теми, кто не помер с тех времен, и пилится.
Re[9]: как определить используемый код
От: Privalov  
Дата: 19.04.20 09:27
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вот теми, кто не помер с тех времен, и пилится.


В том-то и дело, что нет.

Мне, кстати, тоже довелось однажды участвтвать в проекте, начавшемся, по слухам, до моего рождения или около того. Вот в нем были фрагменты, с которыми я не разобрался. Суровый матан, минимизация довольно злобного функционала, ссылку на математику авторы почему-то не оставили. Плюс идентифиикаторы, читаемые только математиками.
Re[10]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.04.20 10:34
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Вот в нем были фрагменты, с которыми я не разобрался. Суровый матан, минимизация довольно злобного функционала, ссылку на математику авторы почему-то не оставили. Плюс идентифиикаторы, читаемые только математиками.


По версии reversecode
Автор: reversecode
Дата: 10.04.20
выходит, что Вы профнепригодны. Ну и я, разумеется, тоже — бывает, что в упор не могу уяснить, как именно работает код всего из нескольких тысяч строк, чтобы в голове сформировалась цельная картинка. Банально уставал отслеживать переходы внутри мелких подпрограмм с неясным (для меня) смыслом. "Угадал все буквы, не смог прочитать слово". Взялся бы скрупулезно все выписывать, рисовать граф переходов и зависимостей, использовал бы какие-то технические средства анализа — скорее всего, преуспел бы. Но терпения и усидчивости, при отсутствии насущной потребности, не хватало. Не моё.
Отредактировано 19.04.2020 10:35 Евгений Музыченко . Предыдущая версия .
Re[11]: как определить используемый код
От: Privalov  
Дата: 19.04.20 10:59
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>По версии reversecode
Автор: reversecode
Дата: 10.04.20
выходит, что Вы профнепригодны. Ну и я, разумеется, тоже — бывает, что в упор не могу уяснить, как именно работает код всего из нескольких тысяч строк, чтобы в голове сформировалась цельная картинка. Банально уставал отслеживать переходы внутри мелких подпрограмм с неясным (для меня) смыслом. "Угадал все буквы, не смог прочитать слово". Взялся бы скрупулезно все выписывать, рисовать граф переходов и зависимостей, использовал бы какие-то технические средства анализа — скорее всего, преуспел бы. Но терпения и усидчивости, при отсутствии насущной потребности, не хватало. Не моё.


Опять же все сильно зависит от предметной области. Суровый матан — вещь специфическая. Там без бутылки первоисточников не разобраться. И даже если они есть, надо знать не только матан, но и принципы именования математиками функций и переменных.

В описанном мною случае непосредственно матан править было не нужно. Требовалось сделать пару-тройку технтческих вещей. Файлы открыть, чтобы не падало сразу в случае чего. При чтении обработать ситуацию, если что-то не в том формате пришло. Положение осложнялось тем, что там не было отдельных процедур ввода-вывода. Математики все по месту писали. При этом они свободно ориентируются в пространстве 50 измерений, но открыть файл для них — это что-то непостижимое. Взаимодействуя с ними, я справился.

Граф переходов и зависимостей мне в свое время тоже пришлось делать. Но там тема знакомая была: принять из сокета, записать в БД, выполнив по дороге какие-то проверки.

И раз участвовал в полном переписывании проекта с отстойных инструментов и языков 80-х на передовые. Ну там только некоторые структуры были нужны. Остальное делали по документации.
Re[7]: как определить используемый код
От: IID Россия  
Дата: 19.04.20 20:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>>>2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


IID>>ой не скажи...

IID>>как начнутся танцы с форками, сигналами, потоками и синхронизацией — простота тут же испарится.

M>POSIX таки проще сделать через WinAPI, чем WinAPI через POSIX. Даже с танцами


Опять 25.
Нет, не проще.
fork ты через WinAPI не сделаешь никогда. Через NativeAPI — да, можно. Эту фичу винда поддерживала с рождения, т.к. подсистем там было изначально 3: WinAPI, posix, OS/2.


M>>>А десяточная консоль вообще без приседаний понимает escape'ы?

IID>>Только флаг выставить.
M>Что за флаг?

MSDN

M>Ну, если полноценный remote shell — неотъемлемая и/или ключевая часть проекта — то да. Иначе — можно просто выкинуть всё вот это


unixway


IID>>Например dmesg имеет параметр -L/--color. Пайпинг приводит к пропаданию цвета. Смена auto на always ВНЕЗАПНО возвращает ESC последовательности на выходе из пайпа.

M>>>Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.

IID>>Параметр добавил ?


M>Нет. Автодетект.


Пля.
Читай что я пишу!
Параметр — для НАСИЛЬНОГО отключения говно-детектов.

M>В линупсовой версии isatty или как-то так, в виндовой — как-то аналогично над хэндлом stdio сделал.


Ты даже не потрудился посмотреть как оно работает...
Два запроса в гугл:

isatty -> _tcgetattr -> ioctl.

Ровно то, о чём я выше говорил:

IID>>Я не разбирался, но считаю что они просто перестают генериться, если выходной файл их не поддерживает. Проверка: какой-нить посылкой ioctl в out-хендл.


Зри в корень блин!


M>Семерка, сэр

Ешьте кактусы сами.
kalsarikännit
Re[7]: как определить используемый код
От: IID Россия  
Дата: 20.04.20 06:12
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема? То есть, сможет, бегло пробежавшись по тексту, выписать характеры персонажей, отметить возможные противоречия, нарисовать граф сюжетных линий, опять же выделив возможные нестыковки, очертить блоки повествования, классифицировать произведение по стилям и т.п.


Воу-Воу! Полегшэ!
Большинству достаточно что убийца дворецкий. Накрайняк сбоку припишут своё, что сосед-Мойша напел.
kalsarikännit
Re[2]: как определить используемый код
От: 3V Россия  
Дата: 20.04.20 16:51
Оценка:
Здравствуйте, flаt, Вы писали:

F>линкер выкинет лишнее.

^^^ это
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.