Jan. 26th, 2010

metaclass: (Default)
Первое: вчера попросил заказчика, чтобы не приезжал - лень по морозу ехать в дебри его встречать а потом три дня по морозу ползать с ним по ресторанам. Я лучше поработаю. Совершенно неправильный подход, т.к. в нашем перевернутом с ног на голову миру социальные связи важнее чем технические решения и реальная работа вообще.


Второе: в проекте есть такая строчка:
class UIStateTranscribing:UIStateCombArity3<UIStateTranscribingBase, UIStateSoundBasePlayer, UIStateTextBase> {
...
}


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

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

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

Сейчас все идеально, но читабельность кода из-за генериков и анонимных делегатов сильно пострадала.
metaclass: (Default)
"C:\Documents and Settings\юзер\Application Data\контора\продукт\LOGS\лог.txt"

vs

"/home/юзер/.прога/logs/лог.log" или "~/.прога/logs/лог.log"

Ад, одно слово. Неудивительно, что под линуксом фар и прочие дос навигаторы нахрен не нужны.
metaclass: (Default)
90 секунд до катастрофы

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

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

Я уже тоже писал про это. У меня, на ВСЕХ проектах, один и тот же сценарий, регулярно: приезжаем ставить софт и обучать пользователей. Мы, лично. В половине случаев на конторе есть кто-то, кого можно назвать админом. В 10% случаев этот кто-то более-менее вменяем. В 1% случаев он способен понять, про что написано в моем посту про /var/log/, /home/юзер/.proga/logs/ и Application Data.

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

Соответственно, админы в лучшем случае ни в чем не участвуют при внедрении софта, в худшем - активно мешают, в меру своего понимания. Мне же нужно приехать куда-нибудь за 400 км, поставить софт, обучить пользователей и уехать обратно. Я не могу сидеть там неделю ждать, пока админ выйдет из депрессивной фазы БАР и соизволит помочь. Соответственно, весь софт затачивается под минимальное участие админов в его внедрении.

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

я вот сейчас начинаю смотреть глазами менеджера на разработку софта, и мне страшно.
Ведь я вместо работы паши как негр до дедлайна половины рабочего времени сижу и изучаю всякую нужную и не очень хуйню.
Ладно, допустим, у меня на работе в QD - RND. Что делать с аутсорс и заказными проектами? Изучать инструменты ДО запуска разработки? Или что-то ещё?


И действительно, когда это все делать?
Это мне, честно говоря, весьма повезло с начальством и клиентами, что они в некотором роде понимают необходимость "сделать все правильно" и на словах время на такие вещи выделяется.

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

И это все при том, что высокоуровневую архитектуру систем, которые я разрабатываю и проектирую вообще никто кроме меня не придумает и не сделает.

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 Aug. 9th, 2025 11:10 pm
Powered by Dreamwidth Studios