Опрос про reusability вашего кода
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Опрос про reusability вашего кода
Захотелось устроить опрос.
Есть люди которые пишут одноразовый код под конкретную задачу, а есть такие кто старается делать его как можно более reusable, в идеале всеми на проекте, какие то общие модули для event processing например или state machine или workflow. Делают это все configurable, easily reusable, extendable etc
Интересно а как вы ?
Есть люди которые пишут одноразовый код под конкретную задачу, а есть такие кто старается делать его как можно более reusable, в идеале всеми на проекте, какие то общие модули для event processing например или state machine или workflow. Делают это все configurable, easily reusable, extendable etc
Интересно а как вы ?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: Опрос про reusability вашего кода
В былые времена старался писать переиспользуемее. Логи, конфиги, темплейты, а уж сколько серверов на разных языках/протоколах. Бывало, что и использовал больше, чем в одном проекте, но чаще таки нет. В доопенсорсные времена это было оправданным.
Полагаю, сейчас прежнего смысла так делать нет. Смысл остался в том, что самостоятельное написание понимает лучше понять устройство подобных проектов для оценки уровня затрат на написание чего подобного. Сейчас целиком самописных компонентов нет. Но есть участие в открытых исходниках, куда добавляю необходимое по работе. И это участие, считаю, достаточно заменяет закукленное самописание.
Задачи типа Event Processing, State Machine, Workflow уже вышли на уровень качественных открытых исходников.
Из предложенных ответов ни один меня не устраивает. Я теперь пишу так, чтобы оно оно требовало минимального вхождения в контекст для человека со стороны. Для этого лучше всего использовать стандартные инструменты стандартным способом. Потому что иначе этот человек скажет, что "тут чёрт ногу сломит", перепишет по-своему - и наступит на те же грабли ещё раз.
Полагаю, сейчас прежнего смысла так делать нет. Смысл остался в том, что самостоятельное написание понимает лучше понять устройство подобных проектов для оценки уровня затрат на написание чего подобного. Сейчас целиком самописных компонентов нет. Но есть участие в открытых исходниках, куда добавляю необходимое по работе. И это участие, считаю, достаточно заменяет закукленное самописание.
Задачи типа Event Processing, State Machine, Workflow уже вышли на уровень качественных открытых исходников.
Из предложенных ответов ни один меня не устраивает. Я теперь пишу так, чтобы оно оно требовало минимального вхождения в контекст для человека со стороны. Для этого лучше всего использовать стандартные инструменты стандартным способом. Потому что иначе этот человек скажет, что "тут чёрт ногу сломит", перепишет по-своему - и наступит на те же грабли ещё раз.
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: Опрос про reusability вашего кода
Я пишу чем проще и короче - тем лучше. И чем меньше зависимостей тем лучше. Всегда стремлюсь делать так чтоб я сам 15 лет назад понял что к чему. Если надо усложнить - комментирую и документирую те моменты.
Когда НАДО переисползьовать - тогда и переделываю чтоб оно было универсальным. YAGNI and KISS Так чхто ни один вариант не катит.
Когда НАДО переисползьовать - тогда и переделываю чтоб оно было универсальным. YAGNI and KISS Так чхто ни один вариант не катит.
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 26871
- Joined: 29 Aug 2000 09:01
Re: Опрос про reusability вашего кода
Именно так у нас (большая компания). Но это условие пришло от манеджмента, а не от отдельных программистов. То есть, раньше каждый писал кто как хотел, потом уходил, и его код расхлёбывали другие, с разным успехом, от "перепишу-ка я всё нафиг заново" , до "всего-то поменяю одну строчку в конфигурации", и новая фича готова. А потом менаджемент приказал все делать модульное и reusable. После этого все были вынуждены перейти на это, хотят они или нет. Теперь есть куча отдельных модулей, каждый имеет описание (отдельный документ). Все входные и выходные переменные, функции, API, etc, документированы как в коментариях в самом коде, так и в его описании. Также, вся конфигурация (насколько это было возможно) была вынесена в отдельные файлы, и она имеет своё описание и отдел системщиков, которые за это отвечают.Сабина wrote:Делают это все configurable, easily reusable, extendable etc
Last edited by thinker on 17 Aug 2015 18:00, edited 1 time in total.
All rights reserved, all wrongs revenged.
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Опрос про reusability вашего кода
Спасибо за мнения. А не бывает такого ощущения что уже написанное слишком громоздкое и там много лишнего, а свое можно сделать в сто раз компактнее и именно для своих задач ?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 26871
- Joined: 29 Aug 2000 09:01
Re: Опрос про reusability вашего кода
Очень даже бывает. Но... "truly своих" задач уже нет. Есть общая задача, и генеральная линия партии, которая гласит все делать reusable, modular... . Все видят текучку кадров и понимают что такой подход правильный, кмк. Размер кода уже вторичен.Сабина wrote:А не бывает такого ощущения что уже написанное слишком громоздкое и там много лишнего, а свое можно сделать в сто раз компактнее и именно для своих задач ?
All rights reserved, all wrongs revenged.
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: Опрос про reusability вашего кода
Для человека, не знакомого с технологией X, любой код, что её использует, кажется громоздким. Для принятия обоснованных архитектурных решений: типа переписать всё c X на Y, необходимо свободное владение как X так и Y.Сабина wrote:Спасибо за мнения. А не бывает такого ощущения что уже написанное слишком громоздкое и там много лишнего, а свое можно сделать в сто раз компактнее и именно для своих задач ?
-
- Уже с Приветом
- Posts: 6449
- Joined: 15 May 2003 00:04
- Location: LA
Re: Опрос про reusability вашего кода
В моём случае reuse практически невозможен или очень незначителен. Но мы не делаем новый продукт а развиваем/чиним существующий, очень старый.
-
- Уже с Приветом
- Posts: 9195
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Опрос про reusability вашего кода
Пытаюсь не преумножать себе и другим работу.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Опрос про reusability вашего кода
А у меня зависит от самой задачи.
Если это УГ или очередная о'джайл инициатива, то и подход соответствующий - слепить и забыть.
Если это УГ или очередная о'джайл инициатива, то и подход соответствующий - слепить и забыть.
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Опрос про reusability вашего кода
Великие технологические гуру и общая шинаСабина wrote:Есть люди которые пишут одноразовый код под конкретную задачу, а есть такие кто старается делать его как можно более reusable, в идеале всеми на проекте, какие то общие модули для event processing например или state machine или workflow. Делают это все configurable, easily reusable, extendable etc
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Опрос про reusability вашего кода
Ну что же вы все в одну кучу то мешаете ? . Напомнили парня из Mule software который мне час рассказывал что на самом деле микросервисам без такой маненькой-маненькой light bus в наше время никудаЛеонид Ильич Брежнев wrote:Великие технологические гуру и общая шинаСабина wrote:Есть люди которые пишут одноразовый код под конкретную задачу, а есть такие кто старается делать его как можно более reusable, в идеале всеми на проекте, какие то общие модули для event processing например или state machine или workflow. Делают это все configurable, easily reusable, extendable etc
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Опрос про reusability вашего кода
Я? Все вопросы пожалуйста ко второму мужу Касперской
-
- Уже с Приветом
- Posts: 64875
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Опрос про reusability вашего кода
Ильич, ну ты хоть с позиций МЛ дай нам гайданс.
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Опрос про reusability вашего кода
Ну, а что сказать-то? Все уже было сказано helg-ом. Сейчас ведь 2015 год, не так как 20 - 30 лет назад, т.е. полно open source, того самого reusable софта. И каждый день его количество растет, на любой вкус re-использования.Komissar wrote:Ильич, ну ты хоть с позиций МЛ дай нам гайданс.
Остальное уже обычно стоит писать в точном соответствии с целью, т.е. максимум результата с минимум потребляемых ресурсов, без универсальных шин. Иногда и излишним полиморфизмом увлекаться не стоит (создавать огромную иерархию классов). Тем более, что application level вещи имеют короткий цикл жизни, около 5 лет, а системные вещи пишутся людьми, которые подобные вопросы на привете не задают.
-
- Уже с Приветом
- Posts: 64875
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Опрос про reusability вашего кода
Наследование - вот что углубляет иерархию. А полиморфизм расширяет.Леонид Ильич Брежнев wrote:Иногда и излишним полиморфизмом увлекаться не стоит (создавать огромную иерархию классов).
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Опрос про reusability вашего кода
Я при иерархию абстрактных/виртуальных классов.
-
- Уже с Приветом
- Posts: 64875
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Опрос про reusability вашего кода
а надо бы - про "базис" и "надстройку".
-
- Уже с Приветом
- Posts: 9275
- Joined: 14 Dec 2001 10:01
- Location: Российская Федерация
Re: Опрос про reusability вашего кода
Опен сорс, конечно, хорошо, если в конторе нет legal отделов.
Миру мир
-
- Уже с Приветом
- Posts: 9275
- Joined: 14 Dec 2001 10:01
- Location: Российская Федерация
Re: Опрос про reusability вашего кода
Ха-ха. Системные вещи пишутся всякими людьми. В моей конторе уровень этих людей порой ниже плинтуса. За последние лет 5 сменили 3 тестовые системы, 3 версионные (cvs->svn->git), 3 вида багзил.Леонид Ильич Брежнев wrote:Тем более, что application level вещи имеют короткий цикл жизни, около 5 лет, а системные вещи пишутся людьми, которые подобные вопросы на привете не задают.
С одним соглашусь: на привете они вопрос не задают. Я думаю у них вообще вопросов не возникает.
Недавно "переиспользовали" компоненту, которую разрабатывали и оптимизировали года 3. Переписали все к чертям ("такая структура почти идеальна". Появился файлец на 25K строк с функцией "сделать все"). Перформанс просел на 2 порядка ("он нам пока не нужен"), по функциональности еще с месяц доработок предстоит.
Зато повесили объявление, что если сосватать мужика-девелопера получишь 1k, если бабу, то 2k.
Миру мир
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Опрос про reusability вашего кода
В таких местах application level people обычно еще хуже
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: Опрос про reusability вашего кода
хочется ... для души, но нет никакого смысла.
обычно проекты небольшие, так что все работают по одиночке. проекты постоянно новые, если даже закончится удачно, то глядишь через пару-тройку лет что-то сделают лучше и пипец. если возвращаюсь через год-другой, так сначала надо вспомнить о чем проект-то был ...
так что стараюсь использовать свой старый код по возможности. так как я относительно много пишу для оборудования, то отработал несколько типовых подходов и использую, если нет критических моментов. кода немного больше, но зато однотипность и copy-paste рулит.
их библиотек разработал, что-то типа model-view-controller подхода для C# (впрочем я как-то до конца не врубаюсь в эту штуку и даже на очень большой системе не врубился) , с автоматическим генерированием тестового диалога. оказалось удобно. и помнится долго возился, чтобы типы контролсов можно менять на лету ...
пытался использовать некоторые библиотеки, но практически всегда это заканчивалось ни чем. наверное не так сильно было нужно, да и всегда нехватка времени ...
обычно проекты небольшие, так что все работают по одиночке. проекты постоянно новые, если даже закончится удачно, то глядишь через пару-тройку лет что-то сделают лучше и пипец. если возвращаюсь через год-другой, так сначала надо вспомнить о чем проект-то был ...
так что стараюсь использовать свой старый код по возможности. так как я относительно много пишу для оборудования, то отработал несколько типовых подходов и использую, если нет критических моментов. кода немного больше, но зато однотипность и copy-paste рулит.
их библиотек разработал, что-то типа model-view-controller подхода для C# (впрочем я как-то до конца не врубаюсь в эту штуку и даже на очень большой системе не врубился) , с автоматическим генерированием тестового диалога. оказалось удобно. и помнится долго возился, чтобы типы контролсов можно менять на лету ...
пытался использовать некоторые библиотеки, но практически всегда это заканчивалось ни чем. наверное не так сильно было нужно, да и всегда нехватка времени ...
-
- Уже с Приветом
- Posts: 2264
- Joined: 17 Jun 2003 04:41
- Location: Just like US
Re: Опрос про reusability вашего кода
Полиморфизм и углубляет и расширяет, в зависимости от классификации наследование подпадает под категорию subtype polymorphism или universal inclusion polymorphism.Komissar wrote:Наследование - вот что углубляет иерархию. А полиморфизм расширяет.
А по теме - как правильно заметил helg все зависит от контекста, и Википедия его поддерживает: "Although it is simple in concept, successful software reuse implementation is difficult in practice. A reason put forward for this is the dependence of software reuse on the context in which it is implemented."
Также reusability подразумевает, что используемый код не имеет багов и достаточно оптмизирован, что может быт правдой, а может и нет От себя могу отметить, что большинство принципов хорошего дизайна сильно ухудшают оптимизацию (на самом деле не могу припомнить ни одного, который нет, может быть, кто-то знает?)
Еще один анекдот на эту тему:
I spoke to a developer just yesterday who looked me in the eye and told me that in 30+ years as a developer (a successful one, I’d add), he’d never once reused his own code. As I sat blinking in disbelief, he explained that, of course, he always thought he would reuse it. He’d often agonized over its design, certain that he was creating code of great significance that he and other generations would reuse, with grateful tears misting their eyes. In fact, it never happened.
...а мы такой компанией, возьмем, да и припремся к Элис!