Чтобы программа существовала долго, в ней должны быть плагины.
Почему происходит бесконечное переписывание - "новый блокнот, где ничего нет и толстые кнопки"? Читать чужой код тяжело! Новичку чего-то не хватает, он открывает ваши исходники, а там волшебный лес AbstractSingletonFactory. "Cложно разбираться, напишу сам, а остальные функции всё равно ерунда". Естественно, результат этого - плохой. Человек неопытен.
Но даже если стараться, крупные проекты не могут быть простыми. Новичку никогда не будет легко в них разобраться.
Почему переписывать кажется проще? Когда пишешь с нуля, постоянно достигаешь результата. Сразу что-то запускается и работает. Чтобы разобраться в чужом коде, надо не одни сутки копаться в нём, а результат минимален. Не только удовольствия нет, но и схема плохо запоминается. В итоге вас переписывают.
Как с этим бороться? Нужно дать новичкам лестницу из лёгких результатов.
Нужно предоставлять АПИ плагинов, которое одновременно простое - чтобы можно было, не вникая в подробности, быстро сделать что хочешь, - и выводит наружу особенности архитектуры. Достигая небольших результатов, программист будет лучше понимать её. К тому же, это инвестиция в вас. Таким образом будут воспитаны программисты, которым хочется вас доработать, а не переписать.
Так сделано в Вордпрессе, и какой процент сайтов работает на нём? Так было сделано в Windows (WinApi).
Так было сделано в Файрфоксе, но они бросили эту идею. В результате программистов, которые могли бы и хотели бы заниматься Файрфоксом, практически не осталось.
Естественно, архитектуру нужно постараться сделать простой! Части её - независимыми. Чтобы для отдельной задачи достаточно было разобраться в чём-то одном.
Если плагины нужно компилировать, можно добавить "простые плагины" на Питоне или Lua, но выводить туда настоящие внутренние классы. Или их упрощённые версии, но отражающие полезные идеи о них.
Почему происходит бесконечное переписывание - "новый блокнот, где ничего нет и толстые кнопки"? Читать чужой код тяжело! Новичку чего-то не хватает, он открывает ваши исходники, а там волшебный лес AbstractSingletonFactory. "Cложно разбираться, напишу сам, а остальные функции всё равно ерунда". Естественно, результат этого - плохой. Человек неопытен.
Но даже если стараться, крупные проекты не могут быть простыми. Новичку никогда не будет легко в них разобраться.
Почему переписывать кажется проще? Когда пишешь с нуля, постоянно достигаешь результата. Сразу что-то запускается и работает. Чтобы разобраться в чужом коде, надо не одни сутки копаться в нём, а результат минимален. Не только удовольствия нет, но и схема плохо запоминается. В итоге вас переписывают.
Как с этим бороться? Нужно дать новичкам лестницу из лёгких результатов.
Нужно предоставлять АПИ плагинов, которое одновременно простое - чтобы можно было, не вникая в подробности, быстро сделать что хочешь, - и выводит наружу особенности архитектуры. Достигая небольших результатов, программист будет лучше понимать её. К тому же, это инвестиция в вас. Таким образом будут воспитаны программисты, которым хочется вас доработать, а не переписать.
Так сделано в Вордпрессе, и какой процент сайтов работает на нём? Так было сделано в Windows (WinApi).
Так было сделано в Файрфоксе, но они бросили эту идею. В результате программистов, которые могли бы и хотели бы заниматься Файрфоксом, практически не осталось.
Естественно, архитектуру нужно постараться сделать простой! Части её - независимыми. Чтобы для отдельной задачи достаточно было разобраться в чём-то одном.
Если плагины нужно компилировать, можно добавить "простые плагины" на Питоне или Lua, но выводить туда настоящие внутренние классы. Или их упрощённые версии, но отражающие полезные идеи о них.