Владимир Шахиджанян: Соло на клавиатуре онлайн

Настоящая забота о будущем состоит в том, чтобы отдать всё настоящему!

← Поместить свой девиз
Наши сайты:
ergosolo.ru, 1001.ru
Есть вопросы или предложения?
Пишите нам.
Нет ленивых людей - есть бездельники! А Вы не такой человек.
Гонки на клавиатуре

Работа : Основной недостаток современных информационных систем на предприятии. Часть 5. Чужой код.

Поднять запись

    Чтобы комментировать запись, войдите на сайт, используя свой адрес электронной почты и пароль, или зарегистрируйтесь, если вы этого ещё не сделали.

     

    Информационные системы. Что это такое. Это прежде всего программа, которую пишет программист.
    Программа до той или иной степени соответствует потребности пользователя, но всегда нужно её дописывать, улучшать, пилить под новые требования. 
     
    Программист - художник сегодняшнего века информационных технологий. В девятнадцатом веке да и раньше художниками были поэты, писатели, они создавали, творили для людей. Бурное развитие двадцатого века породило кино. Актёры, режиссёры - вот творцы.
     
    А сложные картины информационных продуктов, которыми пользуются сейчас рисуют несомненно программисты.
     
    Представьте, Вам нужно нарисовать картину. До Вас её уже нарисовали, на ней нужно внести определённые мазки, дополнить, что-то убрать, чтоб недоделанный натюрморт, портрет, пейзаж засиял новыми красками, заставил по новому восторгаться творением ценителей-зрителей-читателей-наблюдателей-пользователей. 
     
    И что ж, не лучше ли взять чистый холст и снуля нарисовать картину?
     
    Пожалуй, это идеальный вариант. Но нужно нарисовать так, чтобы осталась и прошлая функциональность, и одновременно новая. Нет времени на то, чтоб создавать заново шедевр. Программы порой большие и создаются большими коллективами на протяжении нескольких лет.
     
    Когда я учился в школе и писал программы на бейсике дома в тетрадке, а потом вводил программу на уроке информатике и весь класс играл в мою новую игрушку, казалось, я так и буду творить свои программы, продавать их за бешеные деньги, буду купаться в роскоши и ездить на лимузинах. Что ж. Жизнь оказалось несколько прозаичней. Языки программирования, среды разработки, всё плодилось, всё размножалось. Казалось, одни алгоритмы, один раз напишутся и будут применяться ...
     
    Но велосипеды изобретались заново и заново. "И старым бредит новизна" ...
     
    "Итак, она звалась Татьяной". Чужой код. 
     
    Помню, на первой же своей работе, мне пришлось сразу дорабатывать часть информационной системы, которую писал мой предшественник.
    Кстати, на каждой такой работе был такой предшественник, и у каждого были тёрки с работодателем, который к тому моменту был моим работодателем, и получить какой-то мало мальски информации, что здесь и как - не было. Приходилось разбираться, порой это занимало длительное время, и в итоге всё равно вся картина перерисовывалась заново.
     
    Да, если это был не очень большой код, и было понятно, что программа должна делать и как она должна это делать, то если не написать код заново, а преобразовать его в тот код, который будет понятен тебе. Не хочешь разбираться с чужим кодом - сделай его своим! 
     
    Когда код плохо написан и плохо структурирован, нет нужных абстракций-декомпозиций, то да, его причёсываешь, порой полностью переделываешь куски, но оставляешь старый алгоритм, а уже потом его дорабатываешь.
     
    Но так бывает не всегда. Не всегда можно причесать старую программу. Даже добавить какие-то мазки к Портрету Гаше никак не могут помочь делу. Что ж тогда делать, когда программа написана нормально, но очень сложно. Огромные слои информации. Тогда идёт отладка, пытаешься разобраться. А время идёт, ты получаешь зарплату, и никак не можешь объяснить своему руководителю, почему не получается, когда будет результат. Сложно. Порой в своём коде программисты не могут разобраться. Хотя это гораздо легче. А тут...
     
    Да, конечно, 1С разрабатывает типовые конфигурации. Их изучают, как стандарты. Но всего не изучишь, да и в типовых много чего не хватает, и чаще на каждом предприятии своя дописанная переписанная не одним поколением программистов системы.
    Нравится
    3
    Не нравится
    2
    Вы не можете голосовать за посты.
    309 просмотров
    10 комментариев

    Худо, художник с меня от слова худо - ни плюсов, ни комментов, худо, девки, худо!

    Анатолий Анатольевич, я всё ходила кругами возле Вашей статьи и всё не решалась заглянуть. 

    Тема серьёзная. А при слове "код" (а сын мне объяснил, что оно означает у программистов) я вообще впадаю в ступор...

    А лайк я поставила. Потому что я программистов шибко уважаю!

    А я, кстати, к прошлой Вашей статье оставила несколько комментариев. И некоторые из них очень даже пространные...

    Наталья Николаевна!

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

    Вы оставляете хорошие комментарии, спасибо большое, я обязательно на все отвечу.

    Анатолий Анатольевич, спасибо, что растолковали.

    Вы хорошо объясняете!

    Теперь буду меньше бояться кода.

    Вашу статью прочитала, как главу из книги.

    Написана образным художественным языком. Читается легко и интересно!

    И, самое главное, понятно. Вы умеете хорошо объяснять. Я Вам уже говорила это раньше и повторю это теперь.

    Если убрать некоторые непонятные мне термины (я ведь не программист), самую суть я поняла. 

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

    И ситуация с непонимающим всё это начальником тоже, понимаю, очень обидна и непроста.

    Моему сыну на его работе тоже приходится работать с чужим кодом. 

    Далеко не всегда нужно писать свою программу с нуля. Если программа действительно сложная, а сейчас большинство программ именно такие - то, хоть и много времени уходит порой на то, чтоб разобраться в чужом коде, тем не менее это гораздо меньше, чем писать заново, порой это даже не по силам одному и в обозримые сроки. И одним из ценных качеств современного программиста на рынке является умение разбираться в чужом коде. Умение работать в команде над общим кодом. Существуют специальные средства, чтоб поддерживать совместный код - его помещают в специальное хранилище и каждый из разработчиков может оттуда взять кусочек, его переписать, дописать, положить на место. А потом из хранилища код попадает в работающую программу. Каждый штрих протоколируется, можно потом вернуться к старой версии картины, попробовать различные варианты. Каждый из программистов видит, что где сделано, кем сделано. И даже проекты многие делаются командами программистов, которые и в глаза друг друга не видят, а работают над одним кодом, который находится где-то в интернете. Сегодня читал, что на одном таком популярном сервере, где разработчики хранят свой код - хакеры похитили код и вымогают денег у разработчиков.

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

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

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

    Так всегда и в жизни - есть способные талантливые люди. Талант - он как бы даёт его обладателю преимущество перед другими людьми. И одни используют это преимущество на благо людям. А другие - на благо себе. И во вред людям. 

    Талант - ничто, если к нему не прилагается Человек с большой буквы. Талант не ценен сам по себе. Он ценен только в связке с Настоящим Человеком.  

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

    Хранилище - это не шкаф, нет. Скорее, это дерево. И в нём течёт жизнь. И дерево всё время разрастается и разрастается. Каждая ветка дерева хранит историю, как она разрасталась. И волшебным образом, можно откатиться во времени назад - ветка уменьшится. То есть вернуть старую функциональность. Любую из этих функциональностей, то есть дерево любой из конфигураций можно развернуть уже у разработчика. То есть у каждого программиста разработчика - своё дерево - определённый слепок дерева хранилища на определённый момент времени. Программист у себя дорабатывает это дерево - новые ветки появляются, новые листочки вырастают. Он проверяет - дерево благоухает, всё хорошо - программа работает. Тогда он отправляет своё дерево в хранилище. Хранилище смотрит - что нового сделал этот программист - и добавляет это в дерево хранилища. Одновременно с этим другие разработчики добавляют свои ветки к дереву. Некоторые ветки в хранилище попадают в работающую программу, некоторые засыхают, так как не нашли применения. Если ветки были тупиковыми, не нужными, то что им храниться, их обрубают и выкидывают. Кто отслеживает общую картину - руководители, лидеры команд, которые следят за чистотой дерева.

    Спасибо, Анатолий Анатольевич, за объяснения.

    Вы так интересно описываете! И становится понятно даже человеку, далёкому от программирования. 

    Мне кажется, у Вас талант учителя. А ещё писателя. 

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

    Да что там, иногда смотришь свой код десятилетней давности и думаешь: -И это написал я???!!!

    Прямой эфир
    27.06.2022 04:34
    Команда «ЭргоСоло» создал тему в «Поговорим»: Всемирный день рыболовства
    25.06.2022 07:07
    Наталья Майорова создала тему в «Поговорим»: Когда себя найти не можешь (миниатюры)
    24.06.2022 07:53
    Валерия Мартемьянова создала тему в «Поговорим»: 24 июня
    23.06.2022 19:01
    Наталья Майорова оставила комментарий к теме в «Поговорим»: Всё, что не ясно и солнечно или Летний дождь, это даже приятно!



    Наверх
    Владимир Владимирович Шахиджанян прислал Вам письмо с очень важной информацией. Пожалуйста, прочтите сообщение.
    Прочитать