Журнал инженера-программиста – Telegram
Журнал инженера-программиста
226 subscribers
183 photos
7 videos
148 links
Мир глазами программиста. Истории и размышления.

Автор: @Dementor_AK
https://www.linkedin.com/in/dv-kinash
Download Telegram
Самый необычный опыт последних дней - это доработка учета основных средств для турецкой бухгалтерской программы на платформе 1С:Предприятие

▪️ все метаданные, названия функций и почти все переменные на турецком
▪️ код нужно писать на английском
▪️ интерфейс конфигуратора и язык синтаксис-помощника - русский
👍5🤯21🔥1
Сервис для создания визиток "на стероидах" InOne снова прислал мне недельную статистику о том, что меня снова никто не посмотрел.

Обожаю такую статистику [ирония].

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

В этих письмах обычно меня хвалят:

- Дмитрий, вы поражаете и заставляете восхищаться собой, ведь за последний месяц вы выучили целых 0 слов. Это на целых 0 % больше чем за весь период использования и теперь ваш словарный запас составляет целых 0 слов, что выше чем у 60 % учащихся.


Ага, в такие моменты я сам собой восхищен [ирония].
Хотя иногда задумываюсь о тех 60%, чей словарный запас ниже нуля [тревога].
😁7🤣2
В середине 00х, еще до выхода 1С8.1 не существовало никаких стандартов написания кода на 1С. В то время я пришел на работу в один из ТОП-5 киевских франчей (потом станет ТОП-3), а курсы по программированию для джунов читали партнеры, тоже из киевского ТОП-5. И уже на вводном занятии, где нам показывали условный "Hello, World", я сразу задал вопрос - а как нужно правильно называть метаданные и переменные? Это очень важно с учетом отсутствия строгой типизации (как в JavaScript и прочих интерпретируемых языках). Мне ответили, что никаких общих стандартов не существует и могу называть как хочу.

Прошли годы и стандарты стали появляться. Как я понимаю, локомотивом перемен стала команда разработки БСП (общая библиотека большинства типовых конфигураций от 1С), которые свои наработки стали публиковать как "промышленный стандарт".

Когда в других языках есть "промышленный стандарт" для написания кода, то сначала учат его, на соответствие ему настраивают Sonar и лишь потом пишут код - пример, PEP8 для Python. Но "промышленный стандарт" от 1С почему-то многими игнорируется, а еще больше специалистов вообще про него не знают. Почему так сложилось?

Я вижу две причины, по которым стандарты не прижились - слишком поздно появились и оторваны от жизни. Очевидно, что если есть технология и тысячи клиентов, то никто десятилетиями не будет ждать подарок от братьев Нуралиевых и все давно сами выработали для себя внутренние стандарты хорошего кода. По сути "промышленный стандарт" - это просто правила для прохождения аудита от 1С для добавления в каталог решений. Не уверен, но думаю, что именно эти же правила использует команда Инфостарта для добавления в собственный магазин решений.

Почему стандарты оторванными от жизни? Потому, что они пишутся под БСП, которая пытается эмулировать ООП на базе DSL (язык для автоматизации предметной области).

Берем правило разметки областей модуля, согласно которому EDT самостоятельно вставляет в новые общие модули области - Public, Internal и Private. Но ведь это калька подхода из языков, у которых есть наследование, которого у 1С нет. Зачем нужна область Internal, в которой описывать экспортные методы и функции, которые декларативно запрещено использовать всем потребителям кроме других модулей подсистемы?

К слову, некоторые служебные экспортные функции БСП так и хочется использовать, так как они удобнее чем "публичные". Помню, что при рефакторинге стандартной подсистемы на партнерском форуме всегда было много возмущений - зачем вы нам все поломали? Ответ от разработчиков - а зачем вы использовали служебные экспортные функции, которые по стандарту только мы имеем право их использовать! Получается, что стандарты, которые теоретически направлены на облегчение восприятия и легкость поддержки кода, наоборот поощряют делать запутанный, тяжело анализируемый и плохо поддерживаемый код.

Я считаю, что в случае общих модулей, которые технически невозможно наследовать и переопределять, имеют смысл только два типа методов - открытые и закрытые! Не должно быть удобных экспортных функций для "избранных" и неудобных медленных вариантов для "простых смертных". Архитектурно нужно закладывать, что все экспортные методы должны быть открытыми, а все служебные функции не должны вообще иметь свойства "экспорт". Простое правило и внезапно уже нет нужды в десятке "подмодулей", которые дублируют методы; и код становится в целом чище и понятнее!
👍6👏2👎1
Еще один вопрос от начинающего специалиста - можно ли совмещать изучение языков программирования?

Не вижу с этим никаких проблем. Я в университете все время паралельно изучал множество разных языков программирования. Некоторые оставались со мной на несколько курсов (Pascal, C/C++), а некоторые понадобились всего на одну-две лабораторные работы (Modula-2, ESQL/C, Visual Prolog).

Когда с конца третьего курса начал работать, то языки программирования из академического интереса превратились в рабочие инструменты, от умения работать с которыми зависела зарплата и дополнительные подработки. Поэтому знать несколько ЯП не просто можно, но очень даже желательно.

Другой вопрос - как так учить различные языки программирования, чтобы в голове не было каши из различного функционала, особенностей и ограничений?

Ответ можно найти в советах лингвистов, которые изучали разные языки задолго до изобретения компьютеров. И как раз на днях я смотрел интервью с таким специалистом - женщиной, которая знает 26 иностранных языков, из которых 14 преподает как учитель (при чем все одновременно). Если обобщить ее советы и перенести на программирование, то выходит следующее:

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

📌 Разные языки лучше учить в разных IDE - например, один в IntelliJ IDEA, а второй в Visual Code.

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

📌 Практика, практика, практика! Желательно ежедневная!
👍3🔥2
Вот это новость! Неужели наконец-то можно прекратить эмулировать табличные части на регистрах сведений и хранить информацию в родных таблицах?

Похоже, что разработчики платформы 1С наконец-то разгребли в бэклоге задачи от маркетологов и дошли до пожеланий пользователей 😂
👍5🔥5
Уделил полчасика и проголосовал за доклады на Infostart Tech Event. Много знакомых спикеров. Много интересных тем. Некоторые выступления прямо действительно буду ждать.
👍3
Неустаревающая классика мета-иронии. Взрывает мозг каждый раз, когда вижу 🙃
😁8💯1
Вчера мне исполнился 41 год. Это был рабочий день, который прошел достаточно буднично. У меня был целый год для привыкания к статусу 40+ и даже к статусу "уже пятый десяток".

А вот к ужасной погоде на мой ДР все никак не привыкну - очень редко могу застать Персеиды, которые раскрашивают ночное небо своими огненными росчерками именно на 12 августа - позавчера ночью лил ливень, а вчера небо было затянуто облаками. На протяжении всей ночи даже специально во время воя сирен воздушной тревоги поднимался и проверял состояние неба - облака все там же 😩

За прошедший год этот канал из сборника ссылок на мои статьи все больше уходит в формат блога - лонгриды пишу уже прямо тут, стало больше уклона к рефлексии. Возможно, по этой причине добавилось подписчиков - вчера именно на день рождения оформил подписку юбилейный сотый читатель! А возможно дело не в этом. Попробую устроить небольшой интерактив для сбора мнений 🤓

Особого прогресса и развития я за собой за год не заметил. Основной заработок как и ранее в проектах на платформе "1С:Предприятие". Зимой с интересом познакомился поближе с инфраструктурой Google Cloud и ее возможностями, в рамках бесплатного гугловского курса "AI & Data". Сейчас неспешно прохожу курс по программированию на блокчейне TON - судя по прогрессу закончу ближе к зиме 🙄

Весной присоединился к молодому, но очень веселому комьюнити "TON Society CIS", в рамках которого каким-то непостижимым для меня образом я трижды победил в местной активности "Path of Honor". Свои призовые я использовал для изучения на практике стейкинга, фарминга и поддержки ликвидности в пуллах на DEX'ах. Но главная ценность комьюнити - это познавательные вебинары и интервью, которые еженедельно проходят на площадках СНГ и в суб-хабах. Очень интересно слушать передачи от польского сообщества и тут обнаружил неожиданно высокий процент понимания (видимо из-за айтишной терминологии) 👽

В целом я себя абсолютно не чувствую старым и больным. Даже после 40 у меня все еще ощущение, что жизнь только начинается и все самое интересное ждет впереди! 🎉
5🔥11👍5🎉3
Ежедневные отключения света и рваный сон из-за ночных сирен сильно выбивает из ритма. Возможно, было бы немного терпимее, если бы сирены выли в холостую и не сопровождались звуками взрывов.

Но не всем везет наблюдать взрывы со стороны. Вчера ракета прилетела в полтавский Военный институт телекоммуникаций и информатизации. На текущий момент известно о гибели 52 человек и 271 раненых, но завалы все еще разбирают...

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

Но в выпускной год, как рыцарь на белом коне, к нам в школу приезжает ректор киевского авиационного университета и всех приглашает к себе, рассказывая о крутом техническом обеспечении, доступных общежитиях и самой лучшей учебной программе. Дело в том, что ректор университета, тоже был выпускником моей школы, другом детства нашего школьного директора и ему было важно, чтобы именно с нашей школы к нему приехали абитуриенты. Вот так я поехал учится в Киев, а не в Полтаву или Харьков.

Видимо судьба. Сложись история по другому, позавчера я мог быть в числе пострадавшего преподавательского состава. Ведь я же в школе был медалистом-заучкой, а в университете шел на красный диплом. Очень хотел, но не попал на магистратуру - из-за отсутствия денег и распределения бюджетных мест среди детей сотрудников факультета. Потом некоторое время преподавал в учебном центре... Так что, видимо судьба.
👍2😭21🤡1
В это сложно поверить, но я снова во время листания ленты Facebook попал на рекламу бесплатного учебного потока от Google и снова подписался.

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

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

В прошлый раз за минимальные балы были носочки, а для бутылочки нужно постараться, сейчас поменяли местами - видимо люди просили заменить более "дорогие" награды на более "дешевые". Вторая бутылочка мне точно не нужна, но и носочки как-то не манят. Хотя зиму обещают холодную...
👍2🔥1
Я приятно удивлен, что не смотря на мои затянувшиеся паузы между заметками, мои читатели не отписываются. Более того, даже приходят новые 😅

Написание больших статей занимает много времени. Их чтение, вероятно, тоже требует далеко не две минуты. Поэтому будем "писать-сокращать", как наставляет Максим Ильяхов, гуру печатного слова! И буду пробовать новые форматы ✍️

Я настолько затянул составление заметки про IT-работников, что за это время во Франции успели арестовать Павла Дурова (напомню - это владелец Телеграмм). Казалось бы, какое это имеет ко мне отношение? Но Дуров, пойдя на частичное сотрудничество с французскими правоохранительными органами, отключил загрузку картинок в сервисе Telegra.PH для борьбы с педофилами. Т.е. чтобы вставлять в текст картинки мне теперь нужно искать другие хостинги или оставлять ссылки на первоисточники. Плохая практика. Именно так и появляются статьи с белыми квадратиками вместо иллюстраций 🤕

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

Тоже буду теперь выдавать разделы по мере готовности. Тем более, что в каналах Телеграмма пока картинки не запрещают. Буду как Диккенс 🤓
3💯2👌1
На этой неделе уже дважды слышал мнение, что смайлик "))" при переписке используют только старпёрды, а молодежь для выражения веселья пишет "ПХАХАХА".

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

Помните, как у Конан Дойля его сыщик Шерлок Холмс по составу грязи в следе преступника мог определить из какого он района Лондона? Но этот финт у него не сработал бы при необходимости вести расследование за пределами знакомого города!

Действительно, такие мелочи как эмодзы могут многое сказать о культурном слое, в котором формировался человек. Но нужно хорошее знание существующих "шибболетов" и какие среди них бывают комбинации и по каким причинам. Просто на основании смайликов вешать ярлыки на людей - недальновидно! (◕‿◕)
💯7😁42
Программисты шутят про свой рабочий день: обычно 25% времени уходит на размышление, потом 5% на написание кода и оставшиеся 70% на поиск ошибок в написанном. И это еще не считая часов на компиляцию и прохождение тестов! Другими словами, время на выполнение задач сложно предсказуемо.

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

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

Есть целых три варианта:
1️⃣ Платим одинаково - у них же одна должность и оба работали всю неделю.
2️⃣ Первому заплатим премию. Он не просто справился быстрее, а еще за оставшееся время успел сделать другую работу - т.е. по закрытым задачам его вклад в эффективность компании выше.
3️⃣ Второму заплатим премию. Он ведь занимался техническим долгом, с которым прежде никто не хотел связываться, и он наконец-то решил системную проблему, которая в будущем больше не будет мешать быстро делать мелкие задачи - т.е. его вклад в общую стабильность разрабатываемой системы выше.

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

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

Какая отличная задачка по менеджменту!

У кого-то есть идеи как ее решать?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Журнал инженера-программиста
Первый программист работает быстро и делает много задач. Второй программист неделю разбирался с легаси-кодом. Так как же лучше их поощрить?
На текущий момент большинство, 53% голосов, за первый ответ. И это верное решение!

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

Но самое главное - нужно заранее известить за что будет выдана премия, чтобы люди сами себе ничего лишнего не придумывали и потом не разочаровывались.
Журнал инженера-программиста
В это сложно поверить, но я снова во время листания ленты Facebook попал на рекламу бесплатного учебного потока от Google и снова подписался. Обучение началось в этот понедельник. Я пока даже не регистрировался на учебной платформе, лишь послушал вступительный…
К сожалению, этот учебный марафон от Google я пропускаю. Переоценил свои силы и наличие свободного времени. Ограничусь только просмотром митапов - некоторые из экспертов очень харизматичны и умеют интересно преподносить материал.

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

Например, сегодня был митап смешанного онлайн-офлайн форматов в Хельсинки (Финляндия) от компании, где работает несколько моих знакомых. У них оказался смешан не только формат мероприятия. С точки зрения организации - это был настоящих артхаус. Для того, чтобы попасть на мероприятие пришлось проходить квесты и разгадывать головоломки. Организаторы назвали это Proof-of-Attendance

На 3-х дневной конференции INFOSTART Tech Event, которая была на прошлой неделе в Питере, я тоже был. Некоторые доклады послушал в живом эфире, записи остальных ожидаю. В первый же день в зале "Выборг" (куда я переместился из основного сразу после отличных докладов Артема Кузнецова и Андрея Овсянкина) меня очень впечатлил рассказ о попытке перенести "Герои 3" на платформу 1С. Можно было встроить COM-объект для трансляции оригинальной игры, можно было бы сделать веб-версию и показывать через HTTPDocument, но ребята пошли по хардкору и решили использовать только самые базовые элементы платформы - справочники, документы и табличное поле (упрощенный Excel). Такие "упражнения с ограничениями", когда знакомые инструменты нужно заставить работать по новому, здорово прокачивают экспертность! А в финале был фееричный вопрос из зала - раз выбрана платформа 1С, то почему экономика замков не сделана на регистре бухгалтерского учета? И действительно, почему бы и да 🤓
1🔥52😁1👨‍💻1
Но не только по митапам я стараюсь улучшить понимание английского языка на слух. На прошлой неделе наконец-то начать смотреть англоязычные фильмы в оригинале 🧐

Вспомнил, что уже очень давно, когда puzzle-movies.com был всего лишь разделом на сайте puzzle-english.com, я купил у них пожизненный абонемент на все их сервисы (со скидкой вышло около десяти долларов). Все доступы на сайты до сих пор отлично работают и мне доступна огромная фильмотека с двойными субтитрами 🎥

Короче, пора переставать откладывать на пенсию просмотр популярных кино и сериалов, как я обычно делал, и начинать просто смотреть 📺

#english
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Последний месяц на англоязычных передачах формата "утреннее шоу" стал замечать странное приветствие ведущих "Джим-Джим". Стандартное "Хэллоу" тоже иногда было, но для приветствия все же отдавали предпочтение форме "Джим-Джим".

Вчера утром в одном чате случайно обнаружил отгадку таинственного приветствия - один чатланин написал другому "gm gm". GM - это же стандартное приветствие Good Morning. Со, Джим-Джим, Гайс 👋
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤯4😁31🏆1😇1
Некоторых отвлекает голод. Я знаю, что есть люди, которые не могут заснуть, если чего-то не поедят. Меня голод от работы никогда не отвлекал и концентрацию не нарушал. В отличии от холода! Когда деревенеют пальцы и ты печатаешь словно бабушка из регистратуры поликлиники, когда из-за сидения за столом всего пары часов у тебя леденеют ноги, о концентрации нет никакой речи. Такое ощущение, что я даже думаю с трудом.

В квартире заклеил окна и иногда включаю обогревать, что позволяет держать температуру на уровне +16-17 градусов. Это много или мало? По обновленным правилам в Украине отопление начнут включать, если три дня подряд среднесуточная температура будет ниже 8 градусов с прогнозом понижения. Поэтому хоть три дня подряд с заморозками уже были, но отопление не включили, так как на вторую половину октября синоптики спрогнозировали потепление. Плановой датой подачи тепла сейчас называют начало ноября.

Чем-то похоже на жизнь в закарпатском селе Синяк, где мы были в марте-апреле 2022 года. Это была холодная и сырая весна, временами падал снег. Хозяин гостинного дома принес нам обогреватель, но я все равно мерз. Спасался горячими чаями и огромными плитками шоколада с карамелью и орехами. Сейчас очень похожая история. А еще коты точно так же все время лезут на колени 😺
10😢6🤝2