metaclass: (Default)
[personal profile] metaclass
Ждевелоп написал очередной пост из серии "как на самом деле все происходит в ИТ" с привлечением меня в качестве отрицательного примера: http://jdevelop.livejournal.com/2067575.html
Парадоксально, но факт - метаклассы аутисты, даже будь они сто тыщ раз основа основ компании - в результате замыкают все на себя, и если они на более-менее ключевой позиции - то разработка превращается в карго-культ правил, которые остальные не понимают, а глава секты не считает нужным пояснить/написать/обсудить.

В данном случае, он прав, потому что я не умею объяснить некоторые вещи коллегам и разработка кое-где превратилась в натуральный карго-культ. Причина в том, что в силу ограниченности ресурсов, меня хватает только на то, чтобы "натянуть кложурь/F# на firebird/postgresql/mssql" из-за чего некоторые архитектурные решения и их причины остаются задокументированными только в виде заметок в таск-трекере. Ну скажем, я сейчас одновременно делаю 4 проекта, из которых два коробочных, и единственный способ при этом не сойти с ума - это делать их на общей кодовой базе, что налагает на нее некоторые ограничения, которые не очевидны коллегам, не видящим всей картины в целом.

Второй аспект, который лично мне не совсем очевиден до сих пор - это степень моей личной вины в разного рода нетривиальной херне, накопившейся за 15 лет работы. Кое-где причина заведомо в том, что я не умел в общепринятые инструменты (один проект, существующий с 1997 года, использует совершенно невменяемый велосипедный фреймворк, разработанный в припадке идиотизма и только сейчас дошли руки это наконец-то заменить на нормальный код, благо с тех пор появились интернеты, нормальные сервера и сети у клиентов).
Но вот конкретно текущая ситуация с несколькими проектами на двух работах, использующими общую кодовую базу и разного рода нетривиальные кодогенераторы и F# с кложурью - с ней не очевидно. С какой стороны я на это не посмотрю, альтернатива была только одна - упростить все в несколько раз, отказаться от мысли запустить где-то кроме винды, использовать только Firebird, снизить количество проектов до одного, убрать кодогенераторы и отказаться от повторного использования кода. Из плохого для конторы и клиентов тут только снижение эффективности/скорости работы, т.к. F#/clojure/метапрограммирование с кодогенераторами все-таки сильно упрощают разработку.

Date: 2014-01-06 11:27 am (UTC)
From: [identity profile] raydac.livejournal.com
все думаю возродить нетривиальную херню в лице вебсервера с языком форт использованным для написания энтерпрайз системы

Date: 2014-01-06 11:32 am (UTC)
From: [identity profile] metaclass.livejournal.com
Форты и всякие такие встраиваемые интерпретаторы это хорошо против больных на голову заказчиков, которые требуют проект на не подходящем для задачи языке.

Date: 2014-01-06 11:39 am (UTC)
From: [identity profile] raydac.livejournal.com
да forth это нормально и кошерно, там только обратная польская запись народ пугает.. я тут недавно в праздники с qbasic на питон проект один переписывал который формирует wav файлы для заливки в бк-0010, вот только теперь я можно сказать понял что такое реальный семантический разрыв между задачей и языком, я иногда без поллитра не мог понять что автор хотел сказать даже тем или иным участком кода в котором он оперировал двоичными данными жонглируя ими через строковые представления

Date: 2014-01-06 11:37 am (UTC)
From: [identity profile] aamonster.livejournal.com
Э... Честный форт, с единственным типом данных (число, оно же указатель на переменную или на слово)?
Или нечто на основе форт-машины вокруг строк (вроде вебсервера с ними много работают?)?

Date: 2014-01-06 11:41 am (UTC)
From: [identity profile] raydac.livejournal.com
не, там был не настолько низкоуровневый, он был поверх jvm и поэтому на стек можно было класть long и string

Date: 2014-01-06 12:07 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
Прелесть какая. А что на оной херне было написано?

Date: 2014-01-06 12:11 pm (UTC)
From: [identity profile] raydac.livejournal.com
система обработки заказов для одного завода, года полтора два проработала, потом переписали на перл вроде как, а то сложно было людей знакомых с фортом ужо в 99-2000м найти

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2014-01-06 12:18 pm (UTC) - Expand

(no subject)

From: [identity profile] raydac.livejournal.com - Date: 2014-01-06 12:22 pm (UTC) - Expand

(no subject)

From: [identity profile] fraks-nsk.livejournal.com - Date: 2014-01-06 07:14 pm (UTC) - Expand

(no subject)

From: [personal profile] alll - Date: 2014-01-06 01:28 pm (UTC) - Expand

Date: 2014-01-06 07:13 pm (UTC)
From: [identity profile] raydac.livejournal.com
не, самописный, как и java web сервер
из несамописных фортов я на smal32 делал проекты
Edited Date: 2014-01-06 07:13 pm (UTC)

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2014-01-06 07:26 pm (UTC) - Expand

Date: 2014-01-06 11:36 am (UTC)
From: [identity profile] vit-r.livejournal.com
Не надо путать объяснение и обучение. Джобс - вон тоже один был и сейчас видно, насколько он был необходим. Незаменимые люди есть. И довольно часто.

А остальные, если не понимают, то спрашивают. Но для этого тоже надо набрать определённый уровень.

Date: 2014-01-06 12:25 pm (UTC)
From: [identity profile] falcrum.livejournal.com
Вроде тебе уже стопиццот раз объясняли, что основная проблема - это твоя незаменимость противогазами.

Date: 2014-01-06 12:31 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну так я до сих пор понять не могу - я в этом виноват или противогазы.

Просто общаясь в узком кругу айседов, руССких функциональщиков и прочих, сложно понять, какой реальный уровень разработчиков сейчас и на что лучше ориентироваться - на 10 обычных разработчиков или одного хорошего. При том, что по баблу и времени разработки тоже хрен поймешь, что лучше. Ну в целом, 10*1.5к явно больше чем 1*5к, но проблема в том, что на самом деле есть 2*3к (разные проекты для разных заказчиков и на разных языках) и с этим приходится вертется.

(no subject)

From: [identity profile] eleon.livejournal.com - Date: 2014-01-06 01:17 pm (UTC) - Expand

(no subject)

From: [identity profile] c-a-s-u-s.livejournal.com - Date: 2014-01-06 01:29 pm (UTC) - Expand

(no subject)

From: [identity profile] veter-r-r.livejournal.com - Date: 2014-01-06 06:55 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2014-01-06 06:59 pm (UTC) - Expand

(no subject)

From: [identity profile] veter-r-r.livejournal.com - Date: 2014-01-06 07:11 pm (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2014-01-06 07:58 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2014-01-07 07:41 am (UTC) - Expand

(no subject)

From: [identity profile] jdevelop.livejournal.com - Date: 2014-01-07 03:48 pm (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] falcrum.livejournal.com - Date: 2014-01-06 02:23 pm (UTC) - Expand

Date: 2014-01-06 12:39 pm (UTC)
From: [identity profile] tiendil.livejournal.com
>Причина в том, что в силу ограниченности ресурсов, меня хватает только на то, чтобы "натянуть кложурь/F# на firebird/postgresql/mssql" из-за чего некоторые архитектурные решения и их причины остаются задокументированными только в виде заметок в таск-трекере.
Ну так для этого же есть археология кода или как там её правильно называть. Имхо, обязательный навых для всех. Не знаешь почему так сделано — лезешь в логи репозитория, в таски и смотришь.

Date: 2014-01-06 12:48 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну вот я в это умею (типа раскопать в чужом коде предысторию), а как объяснить другим - хрен его знает :)

Date: 2014-01-06 01:02 pm (UTC)
From: [identity profile] serbod.livejournal.com
Похоже, это такая беда славянских программеров - полдня спорить и доказывать, что это сложно, невыгодно, нереализуемо. И за пять минут сделать.

Вот, пример моего лога, прямо из исходника, в начале файла. Размером примерно как твой пост:
---------------------------------------------------------------------------------------------------------------------------------------------------------------


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

2013-08-02
Добавилась связь со школьной базой, в ней хранились свойства шкафов и ячеек,
список аккаунтов. Была создана форма аренды ячеек (привязки аккаунта к ячейке),
формы редактирования шкафов и ячеек, формы журнала аккаунтов по классам и журнала
аренд, дерево разделов - классы, ящики, аренды. Добавлена возможность работы с
несколькими школами с общими шкафами. (для "двойной" школы в Питере)

2013-09-12
Добавились хранимые процедуры для изменения свойств шкафов и ячеек, и для аренды
(в центральной базе). Отключена возможность аренды и журнал аренд.

2013-09-02
В локальной базе заблокирован доступ к записи в таблицы шкафов и ячеек,
остались только процедуры для установки некоторых свойств. Создание и редактирование
шкафов и ячеек планировалось осуществлять в админке.

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

2013-09-24
Принято решение, что изменения свойств шкафов и ячеек осуществляются здесь, а потом
измененные шкафы и ячейки сериализуются в XML и выгружаются на сервер, как при
создании шкафов. Отключены журналы аккаунтов, убрано пустующее дерево разделов,
формы шкафов перенесены на закладки.

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

2013-10-24
Заново включено периодическое чтение списка шкафов и ячеек из школьной базы.

2013-11-21
Исправлено чтение конфига логгера, добавлена информация о версии, код карты
пишется в ячейку шкафа при каждом цикле опроса

Date: 2014-01-06 01:34 pm (UTC)
From: [personal profile] alll
Да может и не надо объяснять червей и пауков, а надо лепить слой абстракций, на котором незамутнённые кодеры видят только розовых единорогов.

Date: 2014-01-07 04:13 am (UTC)

Date: 2014-01-06 02:13 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Альтернативой кодогенератору может быть только интерпретация. (Я ничего не предлагаю, просто философствую.)

Date: 2014-01-06 02:22 pm (UTC)
From: [identity profile] gds.livejournal.com
пробовали, гадость редкостная. Именно поэтому я сейчас делаю что-то типа ruby on rails, но без руби, а с окамлом и кодогенерацией.

(no subject)

From: [identity profile] ng67.livejournal.com - Date: 2014-01-06 02:23 pm (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-06 02:25 pm (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-06 02:45 pm (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-01-06 06:10 pm (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-07 01:49 am (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-01-07 10:03 am (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-07 10:55 am (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-01-07 11:02 am (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-07 11:08 am (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2014-01-07 11:18 am (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-01-07 11:23 am (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-07 11:38 am (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-01-07 11:43 am (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-08 03:07 am (UTC) - Expand

(no subject)

From: [identity profile] permea-kra.livejournal.com - Date: 2014-01-08 08:45 am (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-08 09:16 am (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-01-06 04:20 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2014-01-07 07:42 am (UTC) - Expand

(no subject)

From: [identity profile] gds.livejournal.com - Date: 2014-01-07 07:47 am (UTC) - Expand

Date: 2014-01-06 02:20 pm (UTC)
From: [identity profile] ng67.livejournal.com
Ну и зачем? Почему не использовать современные инструменты?

Date: 2014-01-06 03:31 pm (UTC)
From: [identity profile] sdfgh153.livejournal.com
Ребе, если сказать себе "я неуиноуный полностью, это всё противогазы", то ситуация вообще никак не изменится. То есть злобой на тупых их умнее не сделать. Я тоже считаю, что виноуат не ребе, конечно, но как дальше-то жить?
Два варианта:
1. Стать попроще и писать похуже, работать побольше, есть поменьше
2. Воспитывать противогазов

Я вот пробую второй путь (хаха, слепой ведёт слепого), к удивлению получается.
(deleted comment)

(no subject)

From: [identity profile] sdfgh153.livejournal.com - Date: 2014-01-07 04:47 am (UTC) - Expand

Date: 2014-01-06 06:55 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
Вопрос про вину несколько светлый и к профессии отношения не имеет. Всё, что происходит с человеком, - его выбор, на том или ином уровне души.
А статья по ссылке мне понравилась, выбирают там грамотного человека, а не технодегенерата. Хотя в текущей системе понятие интервью унизительно для обоих. И для шлюхи, продающей время, и для эксплуататора.

Date: 2014-01-07 07:26 am (UTC)
From: [identity profile] theaspect.livejournal.com
И чему равен bus-factor?

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2025 08:01 am
Powered by Dreamwidth Studios