А вы не обращали внимания на то, что там же две ветки кода?
Если на сервере установлена пятёрка, то задействуется одна ветка, в противном случае другая.
Вот мы и пришли к тому, что не фотошопом единым жив человек. И кому-то уроки по гимпу или пэйнт-нету тоже пригодились бы.
Кстати, напомните, пожалуйста, сколько фотошоп стоит?
Новичку фреймворк не нужен. Новичок сам должен написать один-два-много фреймворков, чтобы разобраться в принципах, получить опыт и понять, что не следует изобретать велосипеды.
А опытному разработчику нужен фреймворк, который достаточно мощен, чтобы решать разные задачи, гибок, чтобы решать нестандартные задачи, подробен, чтобы избавить от рутины и изобретения велосипедов, и нравится, чтобы с ним приятно было работать.
Не стоит забывать, что каждой задаче - свой инструмент.
Третий вариант - однозначно полезен в крупных проектах и больших командах.
Первый (первые два - чем они отличаются) - на нестандартных задачах, в руках умелых программистов...
Третий вариант полезен, если хорошо подходит проекту, если все накладные расходы (резервирования памяти, обращения к базам и т.п.) оказываются затребованы и оправданы.
Первые два - если фреймворк надо задействовать частично, раздёргать на компоненты и модули, выбросить всё лишнее.
И наконец, третий вариант хорош, если надо быстро включиться в работу и некогда экспериментировать и выбирать, что будет, если сделать так, а не иначе.
Что до меня, я пока к игнитеру добавляю те или иные библиотечки из их же вики. Но мысль весьма и весьма привлекательна. Способствовать по возможности буду, и уж всяко следить за подобным начинанием.
Я вобщем-то понял, что это разные вещи. Одного не понял - как стартовать. Мне нельзя ничего, за что мне плюсанули бы карму. Так?
А хелп на хабре - это отдельный юмор. Технический.
"Секреты его [рейтинга, т.е. хабросилы] подсчёта хабраредакции открыли пришельцы с созвездия Андромеды (до их прилёта даже хабраредакция не знала, как он рассчитывается).
По слухам, рейтинг пользователей рассчитывается по результатам последних 55 дней (не спрашивайте, почему)."
Кто мне может объяснить такую вещь:
меня в комментариях несколько раз плюсовали, тем не менее, карма у меня как равнялась нулю, так и равняется. Следовательно, я по прежнему не могу писать ничего в блог (даже личный) и вставлять html в комментарии (хотя над формой комментария написано: "между прочим, можно использовать html-теги").
Что делать? Кто виноват?
Или это уже не исправить, ибо написано в хелпе: утром карма - вечером топик?
P.s. Сегодня вышел Codeigniter 1.6.3. Там в основном багфиксы.
А уязвимости бывают разные.
Одни - при грамотной установке или определённых конфигурациях никогда не всплывут.
Другие - некритичны. Например, помню, была уязвимость, которая позволяла посмотреть ещё не отмодерированные комментарии.
Третьи - уязвимости не в ядре, а в сторонних плагинах. И здесь, извините, чем популярней продукт, тем больше к нему плугов, и тем больше в плугах уязвимостей.
А также на возможности обеих систем. Производительность, функциональность, наличие плагинов, возможность самому дописать плагин. Т.е. если докажете, что MT можёт всё то же, что и свежий WP, сервер нагружает не больше, обновляется не реже, в управлении так же удобен...
И вдобавок в сорок раз безопасней - я за WP и вспоминать не буду.
Оригинальная история по сабжу.
Америка, наши дни. Программистская контора в районе Большого Яблока. Небольшая, человек на 20-25, но являющаяся филиалом всемирно известной корпорации. В некотором смысле самый невыгодный вариант: пахать надо, как в маленькой фирме, а бюрократизм и интриги – как в большой.
Главный герой повествования – старший программист Стэн, он же Костик. Типичный образец русского программиста, способного написать что угодно на любом языке в любые отведенные сроки, но органически неспособного придти на работу в галстуке. Половина имеющегося программного кода написана в его неповторимой манере, с нарушением всех методологий и инструкций, использованием всех недокументированных возможностей и редкими, как золотые самородки, комментариями на кошмарном английском. Все знают, что именно к нему надо идти с неуловимым багом и неразрешимой технической проблемой – и баг будет немедленно пойман, а проблема решена самым нестандартным способом. С другой стороны, в минуты отдыха, когда все обсуждают результаты бейсбольного матча, Костя шарится по русским юмористическим сайтам и хрюкает над непереводимыми на английский шутками. То есть не совсем свой...
Вобщем, история длинная и хабр не даёт вставить её целиком.
Мне это напоминает о спорах любителей использовать готовые фреймворки (cms, либы и так далее) и любителей писать свои.
Не спорю, в процессе обучения можно и нужно писать своё. Для души можно. Можно даже потом выложить opensource.
А когда есть сроки, заказчики, коллеги - сколько людей КАЖДУЮ функцию сделают быстрей? И насколько раздуются исходники?
В конце-концов, почему-то в программировании уже многие десятилетия идёт тенденция ко всё более высокоуровневым языкам.
Давайте вернёмся.
Что быстрей, для каждого чиха изобретать и отлаживать свой велосипед (не о конкретном случае, а вообще), да ещё следить, чтобы он получался высокопроизводительным, безглючным, безопасным, - или пользоваться уже готовыми велосипедами, зная об их существовании?
Вообще-то понятно, что SQL качественно, но узкоспециально отличается от C++.
Только когда я переходил с паскаля на делфи (не на object pascal, а именно на delphi, потому что не так уж много смысла выковыривать op из ide\vcl. Среда здесь - неотъемлемая часть технологии.) и с C++ на C# (которая, собсно, неотделима от .NET) - весьма ощутимо абстрагировался от технических деталей реализации.
Не говоря уже о том, что при переходе с паскаля на делфи неймоверно проще стало создавать интерфейс.
Да простит меня автор заметки, но я бы четвёртым поколением поставил язык плюс среду разработки\выполнения (vcl, mfc, .NET, etc), а базы данных с языками управления - пятым.
И в этом отношении голый php разных версий и php с фреймворками отличаются друг от друга и сочетают в себе и признаки третьего, и признаки четвёртого поколения.
Недавно прочёл такое:
Пообщался вчера по jabber-у c одним из разработчиков блогового движка byteflow.
Я-то думал, что я с моей концепцией что оптимальное число блогов на одном блог-сервере 5-10 - экстремист.
Вон dimrub считает что правильное число 500-1000. Однако вон люди сделали блог-движок, на котором на одном сервере (не на одном IP, не на одном hostname, а на одном инстансте apache) может существовать ровно ОДИН блог.
А все потому, что за основу взят объектно-ориентированный фреймворк с реляционной БД в качестве бэкэнда. Нет, на таком инструментарии можно сделать многопользовательские системы. Вон у того же ЖЖ тоже реляционный бэкэнд. И в Communiware я такое делал. Было время когда у меня в одном инстансе Oracle жили сайты РАО ЕЭС и Гринписа. Но это надо специально закладываться на это дело. Реализация разграничений доступа требует кодирования на уровне приложения и структуры базы, причем нетривиального.
Конечно, это к тому, что фреймворк подбирать надо под задачу, а не задачу под фреймворк.
Но вообще-то лично я считаю, что не так важно, какой фреймворк использовать, важно как его использовать.
Если я какое-то приложение быстрей и качественней напишу на кодигнитере, а кто-то быстрей и качественней на симфонии, то очевидно, что лучше мне писать на кодигнитере, а кому-то на симфонии. Только спроектировать изначально надо нормально.
Ну и кроме того специфика программиста такова, что приходится учиться всю жизнь, и конкурирующие фреймворки хотя бы для общего развития изучать надо.
Чтобы потом был выбор наиболее подходящего инструмента.
Кодигнитер.
Лучшая документация, что я вообще у фреймворков встречал. В том числе и на русском.
Простой и удобный - легко включиться при первом знакомстве и легко продвигаться дальше.
TDD - тестирование при разработке фреймворка, есть инструменты тестирования в нём.
Человекопонятные урлы и поддержка многоязычности встроены в фреймворк изначально.
Удобно структурирован вызов контроллеров: первый сегмент в урле - контроллер, второй - его метод, третий и дальше - параметры.
Не говорю уже про MVC.
В качестве view - шаблон на php, собственный простой шаблонизатор, и можно прикрутить хоть smarty.
Удобные хелперы. Их легко подключать, создавать самому. В том числе от Zend.
Ну и сторонних библиотек уже достаточно.
Вполне неплохо дело обстоит с безопасностью. Неплохая обработка форм (хелперы форм есть), удобная валидация, можно в качестве валидации свои функи подключать.
Автоматом вычищаются массивы GET, COOCKIE и т.п. - чтобы пользоваться штатными средствами фреймворка.
В качестве ORM для базы данных можно подключить Propel. Но по умолчанию используется Active Record.
Поддерживается множество баз данных (MySQL, PostgreSQL, MSSQL, SQLite, Oracle).
Очень лёгкий и быстрый, грузит только те компоненты, которые надо грузить в данный момент.
Хорошее кэширование. А в компании с инструментами для тестирования производительности...
Было много споров о плюсах и минусах поддержки php4.
На самом деле там в ядре две ветки кода: если сервер поддерживает пятёрку, то используется ветка для пятёрки. И можно писать всё из расчёта на пятёрку, а ветку для чётвёрки вообще удалить. Получим фреймворк, изначально заточенный на пятёрку.
Ветка поддержки четвёрки включает слишком уж много хаков, для имитации пятёрки.
Вобщем, поддержка четвёрки почти не мешает разработчикам фреймворка и совсем не мешает конечным разработчикам.
Вот примерно так. Голосовал также за Zend, ибо его классы к кодигнитеру подкючаются. Ну и вообще я к зенду присматриваюсь понемногу.
Если на сервере установлена пятёрка, то задействуется одна ветка, в противном случае другая.
if (floor(phpversion()) < 5)
{
load_class('Loader', FALSE);
require(BASEPATH.'codeigniter/Base4'.EXT);
}
else
{
require(BASEPATH.'codeigniter/Base5'.EXT);
}
Ничто не мешает выкинуть Base4.php и самому писать только из расчёта на пятёрку.
Кстати, напомните, пожалуйста, сколько фотошоп стоит?
Финансовая невозможность приобрести фотошоп объясняется предрассудками ))
Что делать тем, кто по идеологическим, финансовым или каким-то другим причинам не пользуется фотошопом?
Внимание, дополнительный вопрос!
Зачем пользоваться фотошопом для тех задач, для которых он избыточен?
А опытному разработчику нужен фреймворк, который достаточно мощен, чтобы решать разные задачи, гибок, чтобы решать нестандартные задачи, подробен, чтобы избавить от рутины и изобретения велосипедов, и нравится, чтобы с ним приятно было работать.
Не стоит забывать, что каждой задаче - свой инструмент.
Третий вариант - однозначно полезен в крупных проектах и больших командах.
Первый (первые два - чем они отличаются) - на нестандартных задачах, в руках умелых программистов...
Третий вариант полезен, если хорошо подходит проекту, если все накладные расходы (резервирования памяти, обращения к базам и т.п.) оказываются затребованы и оправданы.
Первые два - если фреймворк надо задействовать частично, раздёргать на компоненты и модули, выбросить всё лишнее.
И наконец, третий вариант хорош, если надо быстро включиться в работу и некогда экспериментировать и выбирать, что будет, если сделать так, а не иначе.
А хелп на хабре - это отдельный юмор. Технический.
"Секреты его [рейтинга, т.е. хабросилы] подсчёта хабраредакции открыли пришельцы с созвездия Андромеды (до их прилёта даже хабраредакция не знала, как он рассчитывается).
По слухам, рейтинг пользователей рассчитывается по результатам последних 55 дней (не спрашивайте, почему)."
меня в комментариях несколько раз плюсовали, тем не менее, карма у меня как равнялась нулю, так и равняется. Следовательно, я по прежнему не могу писать ничего в блог (даже личный) и вставлять html в комментарии (хотя над формой комментария написано: "между прочим, можно использовать html-теги").
Что делать? Кто виноват?
Или это уже не исправить, ибо написано в хелпе: утром карма - вечером топик?
P.s. Сегодня вышел Codeigniter 1.6.3. Там в основном багфиксы.
Одни - при грамотной установке или определённых конфигурациях никогда не всплывут.
Другие - некритичны. Например, помню, была уязвимость, которая позволяла посмотреть ещё не отмодерированные комментарии.
Третьи - уязвимости не в ядре, а в сторонних плагинах. И здесь, извините, чем популярней продукт, тем больше к нему плугов, и тем больше в плугах уязвимостей.
И вдобавок в сорок раз безопасней - я за WP и вспоминать не буду.
Америка, наши дни. Программистская контора в районе Большого Яблока. Небольшая, человек на 20-25, но являющаяся филиалом всемирно известной корпорации. В некотором смысле самый невыгодный вариант: пахать надо, как в маленькой фирме, а бюрократизм и интриги – как в большой.
Главный герой повествования – старший программист Стэн, он же Костик. Типичный образец русского программиста, способного написать что угодно на любом языке в любые отведенные сроки, но органически неспособного придти на работу в галстуке. Половина имеющегося программного кода написана в его неповторимой манере, с нарушением всех методологий и инструкций, использованием всех недокументированных возможностей и редкими, как золотые самородки, комментариями на кошмарном английском. Все знают, что именно к нему надо идти с неуловимым багом и неразрешимой технической проблемой – и баг будет немедленно пойман, а проблема решена самым нестандартным способом. С другой стороны, в минуты отдыха, когда все обсуждают результаты бейсбольного матча, Костя шарится по русским юмористическим сайтам и хрюкает над непереводимыми на английский шутками. То есть не совсем свой...
Вобщем, история длинная и хабр не даёт вставить её целиком.
Релиз был год назад... Ночники, смотрю, сильно больше в размере...
Не спорю, в процессе обучения можно и нужно писать своё. Для души можно. Можно даже потом выложить opensource.
А когда есть сроки, заказчики, коллеги - сколько людей КАЖДУЮ функцию сделают быстрей? И насколько раздуются исходники?
В конце-концов, почему-то в программировании уже многие десятилетия идёт тенденция ко всё более высокоуровневым языкам.
Что быстрей, для каждого чиха изобретать и отлаживать свой велосипед (не о конкретном случае, а вообще), да ещё следить, чтобы он получался высокопроизводительным, безглючным, безопасным, - или пользоваться уже готовыми велосипедами, зная об их существовании?
Только когда я переходил с паскаля на делфи (не на object pascal, а именно на delphi, потому что не так уж много смысла выковыривать op из ide\vcl. Среда здесь - неотъемлемая часть технологии.) и с C++ на C# (которая, собсно, неотделима от .NET) - весьма ощутимо абстрагировался от технических деталей реализации.
Не говоря уже о том, что при переходе с паскаля на делфи неймоверно проще стало создавать интерфейс.
Да простит меня автор заметки, но я бы четвёртым поколением поставил язык плюс среду разработки\выполнения (vcl, mfc, .NET, etc), а базы данных с языками управления - пятым.
И в этом отношении голый php разных версий и php с фреймворками отличаются друг от друга и сочетают в себе и признаки третьего, и признаки четвёртого поколения.
Пообщался вчера по jabber-у c одним из разработчиков блогового движка byteflow.
Я-то думал, что я с моей концепцией что оптимальное число блогов на одном блог-сервере 5-10 - экстремист.
Вон dimrub считает что правильное число 500-1000. Однако вон люди сделали блог-движок, на котором на одном сервере (не на одном IP, не на одном hostname, а на одном инстансте apache) может существовать ровно ОДИН блог.
А все потому, что за основу взят объектно-ориентированный фреймворк с реляционной БД в качестве бэкэнда. Нет, на таком инструментарии можно сделать многопользовательские системы. Вон у того же ЖЖ тоже реляционный бэкэнд. И в Communiware я такое делал. Было время когда у меня в одном инстансе Oracle жили сайты РАО ЕЭС и Гринписа. Но это надо специально закладываться на это дело. Реализация разграничений доступа требует кодирования на уровне приложения и структуры базы, причем нетривиального.
Конечно, это к тому, что фреймворк подбирать надо под задачу, а не задачу под фреймворк.
Но вообще-то лично я считаю, что не так важно, какой фреймворк использовать, важно как его использовать.
Если я какое-то приложение быстрей и качественней напишу на кодигнитере, а кто-то быстрей и качественней на симфонии, то очевидно, что лучше мне писать на кодигнитере, а кому-то на симфонии. Только спроектировать изначально надо нормально.
Ну и кроме того специфика программиста такова, что приходится учиться всю жизнь, и конкурирующие фреймворки хотя бы для общего развития изучать надо.
Чтобы потом был выбор наиболее подходящего инструмента.
Лучшая документация, что я вообще у фреймворков встречал. В том числе и на русском.
Простой и удобный - легко включиться при первом знакомстве и легко продвигаться дальше.
TDD - тестирование при разработке фреймворка, есть инструменты тестирования в нём.
Человекопонятные урлы и поддержка многоязычности встроены в фреймворк изначально.
Удобно структурирован вызов контроллеров: первый сегмент в урле - контроллер, второй - его метод, третий и дальше - параметры.
Не говорю уже про MVC.
В качестве view - шаблон на php, собственный простой шаблонизатор, и можно прикрутить хоть smarty.
Удобные хелперы. Их легко подключать, создавать самому. В том числе от Zend.
Ну и сторонних библиотек уже достаточно.
Вполне неплохо дело обстоит с безопасностью. Неплохая обработка форм (хелперы форм есть), удобная валидация, можно в качестве валидации свои функи подключать.
Автоматом вычищаются массивы GET, COOCKIE и т.п. - чтобы пользоваться штатными средствами фреймворка.
В качестве ORM для базы данных можно подключить Propel. Но по умолчанию используется Active Record.
Поддерживается множество баз данных (MySQL, PostgreSQL, MSSQL, SQLite, Oracle).
Очень лёгкий и быстрый, грузит только те компоненты, которые надо грузить в данный момент.
Хорошее кэширование. А в компании с инструментами для тестирования производительности...
Было много споров о плюсах и минусах поддержки php4.
На самом деле там в ядре две ветки кода: если сервер поддерживает пятёрку, то используется ветка для пятёрки. И можно писать всё из расчёта на пятёрку, а ветку для чётвёрки вообще удалить. Получим фреймворк, изначально заточенный на пятёрку.
Ветка поддержки четвёрки включает слишком уж много хаков, для имитации пятёрки.
Вобщем, поддержка четвёрки почти не мешает разработчикам фреймворка и совсем не мешает конечным разработчикам.
Вот примерно так. Голосовал также за Zend, ибо его классы к кодигнитеру подкючаются. Ну и вообще я к зенду присматриваюсь понемногу.