[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: 2014 год. Курс Евгения Попова. Человек развивается
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
twin
Мне кажется целесообразность мешает. Если это, как принято говорить, крутой проект, то там как раз используются не особо таки стандартные технологии, своя, именно для этого проекта разработанная архитектура, командные наработки и так далее. waldicom подтвердил мои догадки.

А вот унификация тут как гиря на ноге. И только там, где нужен быстрый результат в ущерб оптимальности, используются фреймворки типа Yii и Simfony. Оно конечно хорошо, только это не шаг вперед, это сдача позиций.

Вот waldicom'у есть чем гордиться. А тем, кто юзает фреймворки - не особо. Ибо они не только предпочитают чужие решения своим, оправдываясь необходимостью увеличить скорость разработки (читай: штамповки), но и этим самым (а зачастую и прямо через баг-репорты) развивают эту унификацию.

А самое веселое то, что сколько таких холиваров не возникало, на этот вопрос никто ответить не может или не хочет. Покажите пожалуйста крутой проект на фреймворке. Ну очень хочется посмотреть, что в нем крутого. Просто для развития кругозора.




_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
GET
Кстати, недавно прочитал про такой сервис: http://builtwith.com/
Рекламируют они (не я smile.gif ) себя, так:

Цитата
Данный сервис очень прост в использовании — достаточно ввести в поисковое поле необходимый линк сайта (например, topobzor.com) и нажать кнопку Lookup.

В итоге веб-сервис нам выдаст список из таких параметров:

информацию о сервере (Server Information)
какая CMS используется (Content Management Systems)
какой фреймворк используется (Framework)
какие рекламные площадки используются (Advertising)
какие системы аналитики и SEO-анализа применяются (Analytics and Tracking)
какие JavaScript библиотеки есть на сайте (JavaScript Libraries)
какие виджеты используются (Widgets)
какие каналы RSS/Atom и пр. (Aggregation Functionality)
информация о Doctype, CSS/HTML версиях и пр. (Document Information)
какая используется кодировка на сайте (Encoding)


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

Кстати, поставил себе его плагином на Chrome: BuiltWith Technology Profiler 2.2
Достаточно удобно одним кликом всю инфу о ресурсе получить.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sz47181
twin Есть понятие стоимость разработки и если вам выкатят проект по фиксед прайс вы сами будете не против различных Фреймворков.
Еще многие забывают про стоимость поддержки, прикиньте если после вас придет человек и спросит а это что за лапша и как я должен в этом разбираться (думаю это не про вас), все пишут что сейчас средний проект идет по фиксед прайс и времени на разработку своего решения у вас просто может не быть.
Конечно можно придумать себе идеальный мир в котором сидит куча скиловых разработчиков и им платят по часам хоть пять лет, но к сожалению в реальности все иначе.
vital
Цитата (twin @ 7.10.2014 - 06:55)
Мне кажется целесообразность мешает. Если это, как принято говорить, крутой проект, то там как раз используются не особо таки стандартные технологии, своя, именно для этого проекта разработанная архитектура, командные наработки и так далее. waldicom подтвердил мои догадки.

А вот унификация тут как гиря на ноге. И только там, где нужен быстрый результат в ущерб  оптимальности, используются фреймворки типа Yii и Simfony. Оно конечно хорошо, только это не шаг вперед, это сдача позиций.

Вот waldicom'у есть чем гордиться. А тем, кто юзает фреймворки - не особо. Ибо они не только предпочитают чужие решения своим, оправдываясь необходимостью увеличить скорость разработки (читай: штамповки), но и этим самым (а зачастую и прямо через баг-репорты) развивают эту унификацию.

А самое веселое то, что сколько таких холиваров не возникало, на этот вопрос никто ответить не может или не хочет. Покажите пожалуйста крутой проект на фреймворке. Ну очень хочется посмотреть, что в нем крутого. Просто для развития кругозора.

Бред большей частью.

Фреймворк - это не унификация для штамповки, это просто инструмент. PHP - такой же инструмент. Получается, все что на php - по умолчанию не круто. Зато если написать хелло ворлд на каком-нить scala/haskell/erlang - это круто, потому что это крутой инструмент?

Можно сделать что-то простое, можно сложное, и абсолютно не важно какой инструмент использован - важен результат. А результат может быть как крутым так и нет независимо от инструмента.

Фреймворк - это просто способ сократить количество однообразной писанины. Да, мне впадлу каждый раз писать код для работы с бд, для обработки форм и т.п. И если мне впадлу - значит крутой проект мне не сделать или что? Звучит как ахинея полная.

тут кстати есть вполне себе интересные вещи, в перемешку и с простыми сайтами.

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

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
vital
С сервиса выше -
http://trends.builtwith.com/cms/Yii-Framework

Можно увидеть, что количество сайтов-миллионников на Yii - растет. Сайт миллионик - это не круто по вашему, потмоу что его логика на Yii ?

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

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
SoMeOnE
А я все жду ответ на вопрос waldicom, где там все таки пресловутая граница)
twin
От меня? :)

Ну ладно, объясню. Сразу заодно и vital.
Цитата
Фреймворк - это не унификация для штамповки, это просто инструмент.
Вот в том то и дело, что инструмент. Только инструменты бывают разные и предназначены для разных вещей. Допустим вот это инструмент:
user posted image
Очень полезная вещь, когда нужно быстро починить велосипед в дороге, дабы доехать до сервиса. И вот это инструмент:
user posted image
который помогает сделать качественный ремонт. Глупо возить с собой такой чемодан, но столь же глупо в стационарных условиях пользоваться универсальным ключем.

Теперь без метафор, пример с кодом. Один из возможных вариантов развития событий. Допустим мы разрабатываем пресловутый "крутой проект". Со стороны разработки по вашей идеологии нужно использовать универсальный инструмент, дабы
Цитата
сократить количество однообразной писанины
Да, с одной стороны законное желание. Берем фреймворк и смотрим, как оно должно быть. К примеру академический вариант работы с юзерами. Нам нужны две страницы, использующие данные пользователя. Статистика там и кабинет допустим. По идеологии мы должны написать модель, в которой собрать максимум бизнесс-логики и два тонких контроллера (не особо смотрим на реализацию, тут чтобы всем понятно было):
userModel.php

class UserModel
{
public function getUserData($id)
{
$reader = $cmd->createCommand()
->
select("*")
->
from("{{user}}")
->
where('id = :id', array(':id' => $id))
->
query();

return $reader->readAll();
}
}

statController.php
class StatController
{
// Здесь статистика
//
//

public function action()
{
$model = new UserModel();
$udata = $model->getUserData($this->user_id);
$this->render('office', array('udata' => $udata));
}
}

officeController.php
class OfficeController
{
// Здесь всякий кабинет
//
//

public function action()
{
$model = new UserModel();
$udata = $model->getUserData($this->user_id);
$this->render('office', array('udata' => $udata));
}
}
Красота. Однако посмотрим на это с другой стороны. Со стороны сервера и со стороны обслуживания проекта. А с этой стороны оптимальнее (какая крамола) вообще не делать модели:
officeController.php
class OfficeController
{
// Здесь всякий кабинет
//
//

public function action()
{
$reader = $cmd->createCommand()
->
select("*")
->
from("{{user}}")
->
where('id = :id', array(':id' => $this->user_id))
->
query();

$this->render('office', array('udata' => $reader->readAll()));
}
}
И второй аналогично.

Я прямо вижу, как сейчас передернуло приверженцев фреймворков. ФУ! Это же ТТУК!
Да. И менно. Только если взглянуть внимательно:

1. Сокращается количество используемых файлов, соответственно уменьшается количество обращений к ФС, увеличенюи скорости и экономии памяти.
2. Сокращается количество задействованного кода. Как бы парадоксально не звучало на первый взгляд. Не написанного, а именно задействованного сервером. Что тоже плюс оптимальности.
3. Экономится память а запросах, так как теперь мы получаем только необходимые данные, а не универсально все.
4. Такой код намного ремонтопригоден. Объясню.

Во-первых все под рукой и не нужно бегать по файлам. Да, сейчас IDE минимизируют эти неудобства, но вспомним предмет дискуссии - они вынуждены делать этот функционал вслед за "развитием" технологий. Да впрочем и фиг с ним, все равно в одном файле удобнее.

Во-вторых. Представьте работу над этим проектом команды. Один человек модернизирует статистику, второй кабинет. Им одновременно потребовались изменения в модели. Получите конфликт. А если каждый занимается своим файлом - никаких проблем.

В-третьих. Допустим потребовалось изменить модель. А какому-то контроллеру это не понравилось. Имеем баг, так как налицо связанность программы. Дада, сейчас меня натычут носом в юнит-тесты. Однако вот как раз они то и нужны, чтобы избежать подобных ситуаций. А в случае с толстыми контроллерами этой ситуации впринципе быть не может.

Против этих доводов есть три железобетонных.

1. Если понадобится что то изменить во всем приложении, придется менять во многих местах. К примеру добавить еще один параметр к юзеру.

2. Раз нет модели, значит очень сложно использовать этот функционал в другом приложении

3. Много повторяющегося кода, что вредит скорости разработки.

Два последних опускаем сразу. Мы же рассматриваем "крутой" проект. А это значит он должен быть чуть ли не единственным в своем роде. Вряд ли кто то в трезвом уме и при памяти откроет свои сорцы конкурентам. А скорость разработки тут не главное, тут главное ремонтопригодность и способность к модификации.

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

Есть еще один - квалификация программиста. Мол если фреймворк, то спеца найти проще. Это глупость. Если программист не умеет читать код, ему вообще грош цена. И нечего прикрываться фреймворками.

А вот теперь ответ на вопрос.
Цитата
где там все таки пресловутая граница)
Граница там, где заканчиваются обязательства и появляется свобода действий. waldicom не зря зачеркнул фразу про фреймворки. Есть новые технологии, которые действительно помогают делать крутые вещи, а есть идеология не изобретать велосипедов. Там, где последняя - стогнация и упадок. А по последним тенденциям приверженцев унификации становится все больше. Не удивительно, это проще. Как говорят - программист дороже железа. Только так говорят разработчики. А те, кто потом обслуживает это все, зачастую думают иначе. В противном случае потребитель получит и дорогое железо и дорогого программиста.

А в итоге он возьмет какую-нибудь новоиспеченную джумлу или вордпресс и успокоится. А программист из дорогого превратится в нищего)))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.