Обновить
-16
Valeri Rakitine@ValRakitine

Software Architect

6
Подписчики
Отправить сообщение

С самого начала, при возможности, просил вместо IF использовать SWITCH / CASE конструкции и DEFAULT, обязательно, если CASE не угадали )
Да там, вообще, много мест для борьбы на чистый код было. Унифицирование названий функций, переменных, констант.
Поля в базе требовал с префиксами и заглавными буквами писать. С литералами типа == 'Yes' очень тяжело бороться. Вообще запрещал любые константы подобного типа.
За семь лет проект подрастал. Приходили новые codemonkey (не знаю русского слова про таких программистов) со своим подчерком и надо было их поправлять

def foo(a: bool):

    if a:
        #
        # ... 50 LOCs
        #
        return True
        
    else:  # if not a
        return False

Бальзам на раны. Как только я, впервые, встретил эту конструкцию:

 if A = B then

    C = D;

  else

    C = E;

в 1976 году в языке PL/I, то сразу понял, что это засада )

Старался всегда делать как Вы предлагаете.

Более того, сейчас 8 лет работаю в команде над проектом и за первые 3 года отучил всех искользовать ELSE.

Признаюсь, что это было не просто, но я визировал все пул реквесты и стоял на своем.

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

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

Не суть, впрочем. С веб-приложениями тоже же весело. Вот возьмем простенькое типовое веб-приложение, "заполнение анкеты на что-нибудь". Восемь страниц в анкете, пользователь может открывать их в любом порядке (и даже параллельно в разных окнах браузера), когда все заполнил и сохранил — оно улетает куда надо.
Какой тут алгоритм?

Что-то я совсем перестаю Вас понимать. Давайте завтра продолжим. Я буду за рулем часа четыре ...

Вы же программист, как и в любом другом месте "дополнительный абстрактный уровень" может пригодиться. Все ссылки получат код, вместо реального адреса, а там в VA box заменяются на реальные.
Бред, конечно, для Википедии, но там где надо часто обновлять это будет легче сделать в VA box и не лезть в сам код страницы. Я как архитектор, всегда стараюсь "уровень" добавлять если есть возможность.

Чего Вы к слову "сайт" пристали. Я же сказал, что когда говорил про ту канадскую фирму видел ввиду веб приложения, конечно. С САЙТАМИ, конечно проще разобраться, но и для них VA script бы не помешал, как дополнительный абстрактный уровень.

Вы правда про гипертекст как основу веб-сайта не в курсе, или просто не понимаете вопроса?

Что Вы от меня хотите? Можно поконкретней?

Вот представьте себе, не знаю, википедию. Она — сайт. Какой у нее алгоритм?

А так конечно никакого "алгоритма", скорее всего нет ) Он есть, наверное, у разработчиков. Переходы все жестко прописаны в коде.
Не представляю как вы в этом разбиретесь)

Мне вот прямо любопытно: а что же такое "алгоритм" для сайта?

Мы же про "алгоритм" сайта уже говорили в начале этой недели ) на примере вопросника:
eco-programming-webfsm01
там можно видеть VA script:
/data/state_matrix.json

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

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

Да неужели? Видимо в вашем мире на каждый патч, обновление, новую версию программ создаётся новая компания с новыми программистами?

Ой, за 20 лет, я здесь такого нагляделся )
Особено, когда в 2012, с месяц, в одной канадской фирме поработал. Она поднялась на .com буме и наделала кучу сайтов для всяких мелких контор и продолжала их поддерживать. Я и еще трое на этом сидели. Дают тебе очередний сайт. Там надо страничку добавить или функционал подшаманить или рефакторинг, и пока врубишься, видишь, какие вещи ребята, как будто на коленках, кто как, в начале 2000-х делали, без MVC, без ничего, кто в Перле, кто в зародышном PHP без ООП еще. До трех сайтов одновременно подправляешь. Возненавидел PHP c тех пор. Я с Перла начинал, а приходилось в течении дня не раз пересаживаться с "феррари" на "запорожец" и обратно. Сейчас PHP уже ничего так, повзрослел)


Короче, на деле, иногда бывает гараздо сложнее и "веселее")


И самая, главная проблема, когда впервые смотришь на код сайта, "алгоритм" нигде не записан. У тебя общей картины нет. Вот тогда я вспоминал о VAOP где все переходы в VA script можно проследить, а коды всех действий по полочкам в VA box разложены.
Да с VAOP быстро можно было бы разобраться.
А так приходилось тыкаться целый день, дергать за ниточки в этом "черном ящике" и никто, никто не может тебе помочь разобраться что и как там работает (

Для этого нужно, чтобы то, с помощью чего вы предполагаете "работать", предоставляло более высокую культуру программирования, не правда ли?

Несомненно все так, и нам есть над чем работать, и над тем "с помощью чего" надо работать.
Идеологии они ведь только основные направления движения указывают, цели, так сказать, они как высеченные в камне мечты о идеальном процессе СОЗДАНИЯ программного продукта.

… Ну или платят в N раз больше, чем за обычную программу, учитывая, что разработчику делать в несколько раз больше работы.

На все сто с Вами согласен. У меня было много неудачных попыток протолкнуть VAOP, в веб-проекты, которые начинались с нуля. Идею все быстро схватывали и, в целом одобряли, даже не смотря на мой слабый, по приезду, английский, но как только понимали, что это увеличивает сроки разработки и стоимость — давали задний ход. Было, что и получалось. Мне не удавалось убедить заказчика, что можно сейчас заплатить больше, но потом все отбить на экономии при сопровождении и модернизации. Вот свежий пример, правда, не с VAOP. Восемь лет назад начинаем рефакторинг системы, в Zend переводим. Стою на коленях — давайте добавим мультиязычность сразу. Не, у нас весь рынок в штатах и сроки. Сейчас у них встал вопрос — как язык еще один добавить? Новый клиент жирный и теперь они, вышли на меня, как разработчика front framework для них, просят оценить во что это выльется ) Что оценивать, я уже тогда знал, что это будет легче все переписать занова ) Денег, конечно, заработаю, но на душе как-то нехорошо от того, что так происходит.
Поэтому, с Заказчиками предстоит большая работа. Кто платит деньги, тот проект и танцует ),

… что если вам плевать на мнение разработчиков, то можно дальше и не делать ничего.

Спокойствие. Я писал:


… мнение разработчиков о VAOP не является для меня решающим

а про "плевать" не писал )
С разработчиками предстоит долгая работа по повышению общей культуры программирования, что и делает любая методология программирования

А как же "предложена в 1981 году", "я в 1981 с карандашом и ластиком придумал и прикрутил" "опыт применения в 2019 году", "у меня это работает в РЕАЛЬНЫХ ПРОЕКТАХ"?

Не вижу противоречий. Так почти всегда получается, что сначала применят "это" для решения задачи, а потом уже подведут под "это" идеолигическую основу. Вы, кстати, знаете, что ООП имеет идеологию? Это из Википедии:


Идеологически ООП — подход к программированию как к моделированию информационных объектов, решающий на новом уровне основную задачу структурного программирования: структурирование информации с точки зрения управляемости[2], что существенно улучшает управляемость самим процессом моделирования, что, в свою очередь, особенно важно при реализации крупных проектов.

Заметьте что в идеологии ООП, а отличии от VAOP ничего не сказано что:


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

Не трудно заметить, что так оно и есть на самом деле — применяют его там где и без него можно обойтись и так все запутают своим наследием, что фиг разберешься. Стали мне статьи с наездами на ООП встречаться.


В отличии от ООП, VAOP идеологически более нацелено на жизнь продукта уже после его кодирования.


Вот кстати цитата из будущей статьи:


Для программистов все заканчивается в самом начале жизненного пути программного продукта. Родили, поставили на ноги, пошел, ушел и забыли. Это очень сложно, я понимаю, встать на место заказчика и именно под этим углом посмотрить на то, что делает VAOP для снижения затрат на этапе поддержания работы и адаптации программного продукта к изменению внешних условий в Будущем.

Я же пишу про это же в начале статьи:


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

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


Заказчикам будем БОЛЕЕ полезно а не разработчикам. Векторы интересов заказчиков и разработчиков расходятся.
Вот и ответ на Ваш вопрос почему мнение разработчиков о VAOP не является для меня решающим )

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

Куда мы все спешим, друзья. Я всего месяц назад сформулировал идеологию VAOP. Неделю мы уже обсуждаем статью. Большое Вам всем спасибо, что не остались к ней равнодушными. Повторяю — неделя всего. Что за пожар, что и как и все Вам тут же растолкуй в чате )
Это забег на дальнюю дистанцию, на годы. А то получится как у Высоцкого:


Воля волей если сил невпроворот, — а я увлёкся:
Я на десять тыщ рванул, как на пятьсот, — и спёкся!

Терпение. Я уже говорил, что напишу статью, где расскажу об опыте применения в 2019 году VAOP при кодировании Top Trade Cycle.
Не без Вашей помощи у меня появилась идея написать серию статей про программирование 40-60 лет назад под тэгом "карандашное программирование", потому, что когда я начинал в 1975 году, из тулсов мы имели только — бумагу, карандаш и ластик.
К сожалению тэг "карандашное программирование" уже заняли другим смыслом. Можно "винтажное программирование" или "vintage programming". Под этим тэгом я хочу написать статью "Истоки VAOP" из которой Вы узнаете как я в 1981 с карандашом и ластиком придумал и прикрутил VAOP при написании программы дублирования перфолент на ЭВМ СМ-1
Планов много. У нас забег не на 500 )

Вот только все показанные вами примеры — это попытки заточить перочинным ножом шариковую ручку, чтобы обмакнуть её в чернильницу.

Про перочинный нож и шариковую ручку Всем надеюсь понятно, а про чернильницы жми сюда
Так и в программировании, ребята, Вы многое пропустили ). Жмите на мои примеры )

Впрочем, если уходить от ответов на вопросы и игнорировать приводимые примеры — так и будем дальше ходить, чего тут удивительного-то.

Ухожу от ответов? Вам виднее. Главное, что совсем не ухожу ) Мне с Вами интересно ...

Вот только все показанные вами примеры — это попытки заточить перочинным ножом шариковую ручку, чтобы обмакнуть её в чернильницу.

Согласен с Вами полностью. Я все же напишу еще пару статей на случай, если Вам потребуется универсальная точилка )

Это какой же?

Мы уже шестой день по кругу ходим. Один мой бывший студент, спасибо ему, хорошо мне сегодня все объяснил:


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

Хороший парень в Калифорнии сейчас ...

Информация

В рейтинге
Не участвует
Откуда
Toronto, Ontario, Канада
Дата рождения
Зарегистрирован
Активность