Cтоит ли новичку использовать фреймворки?

Статус
В этой теме нельзя размещать новые ответы.

SpYeR

Новичок
Cтоит ли новичку использовать фреймворки?

Учу php, и стараюсь всё писать сам и для ajax'a javascript и php свой, и класс для работы с мускулем, и шаблонизатор, и капчу...
Как вы считаете, учитывая то, что моя цель - образовательная, правильно ли писать всё самому? Или всё-же лучше сразу использовать все готовые решения?
 

Фанат

oncle terrible
Команда форума
как раз в образовательных целях лучше писать все самому.
а потом рефакторить. а потом снова рефакторить.

при этом смотреть, осваивать чужие решение - те же фреймворки - полезно. но именно в качестве примера, а не в качестве основного инструмента.
 

Black Raven

Новичок
Автор оригинала: *****
при этом смотреть, осваивать чужие решение - те же фреймворки - полезно. но именно в качестве примера, а не в качестве основного инструмента.
это относится к новичкам или ко всем?
 

Black Raven

Новичок
Фaнaт
Ну ответить тебе ответили, но я перефразирую вопрос: Ты считаешь, что не следует использовать чужой фреймворк для создания приложений, а стоит делать своё? Ты считаешь что затраты на рефакторинг своего всегда адекватны?

Естественно мы говорим о зарабатывании денег, а не о проектах "для себя, для души".
 

Фанат

oncle terrible
Команда форума
Я считаю, что чужой следует использовать только в том случае, если ты можешь написать такой же
 

AmdY

Пью пиво
Команда форума
Фaнат, значит с РНР стоит завязывать, я не смогу написать такой же :(.
ИМХО при написании проектов не для себя нужно использовать чужие проверенные решения, гавнокода и гавносайтов в инете итак валом, нефик захлямлять ещё своими велосипедами.
 

MagnetiZ

Новичок
Автор оригинала: *****
Я считаю, что чужой следует использовать только в том случае, если ты можешь написать такой же
Как было на каком то форуме в разделе юмор..
- Хочу вечером придумать алгоритм md6 ....

В результате - у автора вечер длится очень долго....

Почему то никто не задумывается об использовании стандартной библиотеки С (без нее этот язык никто даже не понимает)
и никто не указывает что каждый должен быть способен повторить тоже.

Классический пример matlab или maple предлагают свои функции использовать в качестве подключаемых библиотек. так как врядли каждый сможет потратить достаточное количество времени чтобы решить дифуры n-го порядка и записать это в виде собственных библиотек. да и не нужно это в общем.

В качестве RAD средства - использовать даже нужно так как это позволяет показать фукнционал будущей системы в живом виде. можно получить обратную оценку от заказчика и вовремы внести нужные изменения.

А оптимизации предела никогда не будет.
 

Фанат

oncle terrible
Команда форума
Как минимум, черт возьми, надо к этому стремиться.
Количество говнокодеров зашкаливает не потому, что пишут своё, а как раз потому, что писать не умеют ВООБЩЕ. А умеют ляпать из готового.
Главное - что при таком подходе не научишься никогда.
Поэтому Black Raven, который стоит у конвейера, так и простоит всю жизнь. А SpYeR будет тем, кто напишет новый фреймворк, новую ступень в развитии.
 

Духовность™

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

Мне просто интересно, чему научится человек, если на этапе обучения советовать ему "не изобретать велосипед"? С таким подходом можно и вовсе не заниматься программированием, а юзать все чужое и готовое. Зачем писать свою систему, если в сети полно готовых? Да и неужели не интересно САМОМУ сделать что-то СТОЯЩЕЕ? Почувствовать себя профессионалом, ощутить радость от того, что ты САМ это НАПИСАЛ, а не тупо скачал из интернета?
 

MagnetiZ

Новичок
Автор оригинала: *****
Как минимум, черт возьми, надо к этому стремиться.
Количество говнокодеров зашкаливает не потому, что пишут своё, а как раз потому, что писать не умеют ВООБЩЕ. А умеют ляпать из готового.
Главное, при таком подходе не научишься никогда.
Поэтому Black Raven, который стоит у конвейера, так и простоит всю жизнь. А SpYeR будет тем, кто напишет новый фреймворк, новую ступень в развитии.
Скажи Алиса Селезнева, а кем стану я в 2000-х? (из фильма)
Почувствовать себя профессионалом, ощутить радость от того, что ты САМ это НАПИСАЛ, а не тупо скачал из интернета?
Уметь читать чужой код - крайне важно.
это
1. Самообучение
2. Это крайне важно при ознакомлении с новым продуктом который требуется поддержать или помочь кому либо.

Изобретать велосипед нужно на досуге а никак не во время работы. Заказчик не поймет если то что работает успешно у конкурента и общедоступно - не работает у него.
И отмазки в виде "Ну это только в стадии разработки" просто его обескуражит.
 

AmdY

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

Black Raven

Новичок
Фaнaт
[offtopic]
Автор оригинала: *****
Поэтому Black Raven, который стоит у конвейера, так и простоит всю жизнь. А SpYeR будет тем, кто напишет новый фреймворк, новую ступень в развитии.
Ну что тут скажешь. Ты же последняя инстанция и Великий Творец в одном лице. И конечно же ты со мной знаком, читаешь мои мысли и видишь мою работу.

Ты понимаешь, что ты тупо не в курсе есть у меня свой фреймворк или нет?..
[/offtopic]

Решил дописать по-теме:
Ты пару топиков назад придумывал функцию для формирования квери стринга, с заменой параметров...
Ну что я тебе скажу, конечно это очень важная часть проекта и без нее никуда...
Смысл использования готовых решений в том, чтобы не тратить полезное время на написание дублирующего кода. Ты занялся ненужной, в концепции проекта, задачей и отнял полезное время у проекта. И что? Проект от этого выиграл? Ты от этого выиграл, найдя элементарное решение? Тебе было интересно - замечательно. За это время ты мог решить гораздо более интересную и полезную задачу.
 

SpYeR

Новичок
Давайте определимся,
во-первых, я говорил о проектах "для себя" и главное "для образования",
во-вторых, думаю не стоит преувеличивать и сравнивать с велосипедами или стандартной библиотекой C. Да, и велосипед никто изобретать не собирается, я всё-равно что-то читаю, смотрю чужой код, беру оттуда какие-то "советы".. Да, и собственный шаблонизатор или класс для мускуля это ведь не string или array. Думаю, все "велосипеды" это то, что уже есть в стандартном php. Например, писать свою strip_tags().

... И если всё-время работать с готовыми решениями, то разве можно чему-то научиться, и создать САМОМУ что-то новое?
 

Фанат

oncle terrible
Команда форума
Black Raven
Надо смотреть чуть дальше, чем на один ход вперед.
Функция, которую писал я, работает так, как нужно мне. А в случае, если она перестанет работать - я смогу её отладить, поскольку знаю, как она работает.
Да, я мог сэкономить время, взяв чужое решение. И потерять потом больше, когда оно перестанет работать, уже будучи завязаным с кучей других задач.
 

Black Raven

Новичок
SpYeR
На первое:
Я говорил не тебе, а Великому и Ужасному.
Я то задал вопрос вприципе оффтопный - хотелось узнать его мнение об использовании фреймворков не новичками и не "для себя".

На второе:
Сравнивать можно и это не преувеличение. Ты посмотри сколько народу гордо говорит "у меня класс работы с бд!", а глянешь внутрь и что ты видишь? Фасад или дата меппер ты там точно не увидишь. Увидишь ты там враппер (в лучшем случае). Это что, не квадратные колеса?

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

Фaнaт
Я говорю, что ты потратил время на ненужную задачу (хотя это мое мнение, может быть ты считаешь что этим избавляешься от огромного дублирования кода...), а в это время можно было решить более интересную задачу. Твоё желание создать эту функцию я привел как пример убийства времени. Программист это конечно творческая профессия, но это профессия. Ну ты же взрослый дядька, наверняка знаешь "правила Ашманова" (взять бы в двойные кавычки два раза, за то что он просто пересказал и детям понятные вещи, а назвал скромно в честь себя-любимого). Если программист будет постоянно занят рефакторингом, то он никогда не создаст готовый продукт. Иногда нужно жертвовать красотой и удобством просто ради того, чтобы проект заработал. Ну опять же ты же знаешь, что "premature optimisation is the root of all evil". А чем еще будет заниматься новичок, делая свой фреймворк? Вобщем помоему мы говорим об одном и томже, просто ты повесил на меня ярлык "ламер-ремесленник"...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху