• Где ошибка в конфигурационном файле nginx?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    /etc/nginx/nginx.conf, подробности

    UPD. Обновил картинку.
    Ответ написан
  • Почему компьютер любое расширение файла видит как "тхт"?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    "html", должен был появиться значок браузера, а он так и остался тхт-файлом, не подскажите в чем дело?
    Скорее всего дело в том, что при сохранении Вы не сменили тип файла, по этому, он остался *.txt. Там нужно выбрать "Все файлы".

    Картинка
    Ответ написан
    Комментировать
  • Как попасть на hiload разработку, если ранее не было такого опыта?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Может быть я сильно романтизирую эту область, но мне кажется это одно из самых интересных разработок в веб-индустрии.
    Ничего интересного если честно, как вспоминанию - в дрожь бросает... Если на нормальной работе - все "бегают как ошпаренные" раз-другой в месяц, то на такой работе - это практически перманентное состояние у многих. Романтики в этой работе довольно мало, иногда приходилось на работе ночевать, выходных толком нет, вечно кто-то "дежурит" и обычно это целая человек. Романтики в целом не много.

    Если Вы думаете, что HiLoad проекты отличаются по качеству кода от обычных - хочу Вас разочаровать, в большинстве случаев, это не так. Если Вы PHP-разработчик, Вас допустят только до PHP-кода, а к базе данных - могут даже не дать прав на запись, даже на "тестовый стенд БД", который с оригинальной (рабочей) БД никак не связан.

    Если хотите "просто получить опыт" - это довольно не сложно сделать. Запускаете дюжину виртуалок и "паразитную нагрузку" на основной (ведущий) веб-сервер, например, Apache AB и начинаете масштабировать его так, что бы нагрузка распределялась... реплицировать базу, балансировать нагрузку с Nignx'а на "задние" серверы и т.д., подключаете Redis/Memcached в проект, пробуете поставить/настроить Varnish, что бы сократить кол-во запросов на http-сервер и т.д.

    Если у Вас есть какой-то более конкретный вопрос - задавайте, я постараюсь ответить.
    Ответ написан
    Комментировать
  • Какую выбрать среду программирования для Python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Поддерживаю предыдущего оратора, PyCharm - это IDE от немало известной компании JetBrains, которая среди прочего, так же сделала PHРStrom и ReSharper.

    IDE выбирается по двум основным принципам:
    1. Вам должно быть в ней комфортно работать
    2. Ваш компьютер должен её "тянуть" (что по сути является, частью предыдущего пункта)

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

    Писать код Вы можете в чем угодно, хоть в Windows Notepad. Некоторые пишут код в vi и довольны им более чем. Ключевое слово тут - "удобство для Вас". Чем "круче" IDE или редактор - тем больше в нем разных "фишечек и плюшечек", таких как автоподстановка (автодоплнение) кода, интеграция с системами контроля версий или например, такими вещами, как "Vagrant" и т.д.

    Берёте любой редактор/IDE, в частности: PyCharm, NetBeans (вроде там был модуль для Python), Atom, Notepad++, Visual Studio Code и т.д., смотрите насколько Вам удобно там работать... Удобно - работаете. Не удобно, чего-то не хватает? Ищите другой.

    На конечное качество кода, это никак не влияет, исключительно на Вашу производительность и общий уровень комфорта.
    Ответ написан
    3 комментария
  • Как создать обменник валют?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Из чего пилить обменник валют. Может кто подскажет что есть где информация по этому

    Я бы начал с того, что бы научился принимать платежи, для начала. Как только разберётесь со всеми документами и API платёжных систем, 90% вопросов на тему "как?" и 99% желания - отпадает обычно сразу.

    Из моего личного опыта, PHP-код в этой цепочке - наименьшая из проблем.
    Ответ написан
    5 комментариев
  • Зачем нужны миграции?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Зачем нужны миграции?

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

    а если постоянно таблицу с дынными надо поддерживать в актуальном состоянии? не проще ли держать sql-dump этой таблицы в git/svn ?
    На счёт SVN'а (по моему, он вымер как класс, даже Hg/Mercurial почти не осталось) не скажу, но мы так и делаем, храним дамп базы в репозитории, в некоторых случаях даже используем хуки Git'а, которые сверяют версии БД и при изменении - переписывают соотв. файл дампа и добавляют его к комиту.

    И основная проблема (*исключительно в нашей практике) даже не столько в самих миграциях как таковых, а в ущербности их возможностей, в большинстве случаев. Не редко, миграции покрывают лишь малую часть возможностей БД, обычно это: основные типы полей, внешние ключи и индексы. Таких вещей как: триггеры, хранимые процедуры/функции, виртуальные поля, View'шки, типы данных свойственные конкретной БД или просто "не популярные" типы данных, такие например, как GEOMETRY - очень часто, в миграциях не поддерживаются. Так же, как например, я пока не встречал механизмов миграций, которые бы могли нормально создавать такой элементарный тип, как ENUM в PostgreSQL, не говоря уже про более сложные, составные типы и т.д.

    Касательно Symfony, она как и многие другие фреймворки, не поддерживает даже такой типа данных как "ARRAY", вернее то, что в Symfony называется ARRAY - это по факту строка, с сериализованым массивом, а не массив в "чистом виде", который (как тип данных) есть например, в том же PostgreSQL. В виду чего, было бы удивительно ждать чего-то подобного от миграций.

    Ни в одном серьёзном/крупно проекте, я пока не видел настолько безумного администратора БД, который бы позволил модифицировать "живую" БД с помощью механизма миграций на уровне фреймворка. Только SQL-код, после предварительного анализа.

    На основании всего этого, мы для себя сделали вывод, что миграции отлично подходят для автоматизации создания примитивных болванок в БД, например, тех же "новостей", не более того.

    P.S. Я знаю, что для БД существуют специализированные механизмы/программы, для контроля БД, включая данные. Детально пока не разбирался, но подобная возможность ("Контроль версий БД") заявлена, например, в программе SQL Manager for PostgreSQL (для Windows).
    Ответ написан
  • Что происходит при переполнении оперативной памяти?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    В первую очередь интересует Linux, но хотелось бы вместе с этим узнать, как дела обстоят на других операционных системах.

    Начнёт заполняться свой (swap), в других ОС (windows) примерно такая же система, про "совсем другие ОС" - я не в курсе.

    И в Linux и в Windows и в других ОС, для которых есть компиляторы языка Си, есть функция, если посмотреть описание, например, такой функции, как malloc, то мы увидим оттуда, что:
    Если функции не удалось выделить требуемый блок памяти, возвращается нулевой указатель.


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

    Про SWAP можно немного почитать тут.

    Некоторые программы, такие как Photoshop например, будучи заранее зная, что оперативной памяти не хватит наверняка, имеют свои механизмы "свопинга", т.е. создание некоего подобия "подкачки" на диске. У меня например, при открытии одного шаблона (макета) Photoshop может легко "откусить" 100Гб с диска, а если ещё и история изменений большая - может и больше.

    Отдельно хочу обратить Ваше внимание, что в Linux'е есть некий механизм "самосохранения" в ядре, который при определенных условиях начинает "убивать" процессы, вышедшие из под контроля. В какой именно момент времени это происходит - точно я к сожалению сказать не могу, т.к. ещё только в процессе изучения подобных механизмов, но подозреваю, что "выход из под контроля" - это когда процесс и его потомки (форки) начинают потреблять чрезмерное кол-во процессорного времени и возможно памяти. Я наблюдал такую картину во время DDoS атаки на сервер, в этот момент Linux начал "крошить" всё подряд, в т.ч. и веб-сервер попал под раздачу. Среди прочего, помню, что где-то в документации читал, что процессу можно установить соотв. "флаг" или "приоритет" влияющий на этот механизм.

    *ещё раз раз обращаю Ваше внимание, касательно абзаца выше - я детально не изучал данный механизм и в документации "по быстрому" информации не нашел, по этому, в последнем абзаце - информация может быть не совсем точной.
    Ответ написан
    Комментировать
  • Что изменить в стилях css чтобы фрейм увеличил высоту?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Что изменить в стилях css чтобы фрейм увеличил высоту?

    Наверное добавить что-то вроде этого:

    #blog iframe { height: 500px; }
    Ответ написан
    Комментировать
  • Как лучше реализовать запись в БД?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
  • Откуда на маршрутизаторе берётся TX-трафик, если нет RX?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Откуда на маршрутизаторе берётся TX-трафик, если нет RX?

    Если я правильно помню, Tx - исходящий, Rx - входящий.

    Откуда берётся исходящий трафик? Всё зависит от того, какой трафик подсчитывается, это может быть всё что угодно. ARP-трафик, ICMP-трафик и/или ещё что-нибудь. Откуда он берёт - как минимум, сам маршрутизатор может его генерировать.
    Ответ написан
  • Как правильно разрабатывать адаптивный дизайн?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    то шапка тоже идеально заканчивается по экрану
    Какая шапка? "Первый экран" в смысле?
    Это блок с высотой:
    .screen1 {
        height: 100vh;
    }


    С фоновой картинкой.
    Ответ написан
  • Адаптивная верстка css файлы отдельно? как правильно обустроить?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Я просто оставлю это здесь...
    Ответ написан
    Комментировать
  • Конструкторы сайтов и их перспективы?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    лично я думаю что такие конструкторы "собери сам" приведут только у наводнению интернета не качественными и не оригинальными сайтами и во многом случаях вакханалию на самих страницах
    Вы правильно думаете, как мне кажется. Я тоже так думаю. Я даже больше скажу, они уже к этому привели.

    я считаю что делать должен мастер вы же не вырезаете себе аппендицит ? это делает врач. я возможно привожу слишком реальное сравнение но оно вполне уместно
    Скорее, слишком гиперболизированное. Но на счёт уместности - пожалуй да, соглашусь в большей степени.

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

    Программисты - не используют конструкторы, на то они и программисты. Чем лучше программист - тем выше качество. Сейчас, в эпоху "доступности информации" (интернета, или как Вам удобнее, не суть) - появилось очень много "мастеров на все руки". В т.ч. и по самостоятельному вырезанию аппендицита, мозга, или чего-то ещё. По ремонту всего и вся, по разработке сайтов и программ и т.д. Прочитал 2-3 статьи, скопировал код, вауаля - ты "программист". Это нормально. Поисковые системы с подобным дерьмом активно борятся уже, за что им отдельное спасибо.

    для кого эти конструкторы разрабатывают ?

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

    как это явление могло бы повлиять вообще на сотни тысяч программистов по всему миру?
    Нам (программистам) в большинстве своём - откровенно до лампочки. Лично мы вообще вообще почти никогда не берём "новых" клиентов, берём либо по рекомендации от старых, либо тех, у кого уже был сайт, что бы человек понимал разницу.

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

    P.S. Я думаю, все кто в теме, прекрасно понимаю, что есть градации качества, по нисходящей (ниже - лучше):
    1. Конструкторы, аки "Викс", "Юкоз" и пр. хлам
    2. CMS
    3. Фреймворки
    4. Действительно крупные проекты написанные на чистом ПХП, или Питоне или X, не редко в связке с программами на Си, которые обрабатывают самые "узкие" места в производительности.

    Ещё где-то отдельно, балансируют хостинги с VPS и выделенными серверами и конфигурация самих серверов...

    Если бы не было, например, MySQL - возможно PostgreSQL был бы самой ущербной реляционной БД из популярных. А так, переезжаешь с MySQL на Postgres и понимаешь "куда ты попал", о этот "чудесный мир, геморроя и бесконечных возможностей". Это конечно очень условно. Но, не было бы конструкторов - все бы поливали дерьмом CMS, не было бы CMS - под раздачу бы попали фреймворки... Всегда будет какой-то "низший элемент пищевой цепи", всегда будут те, кто работает плохо и так далее... Всегда будет сравнивать А с Б и т.п.

    UDP. Да, и ещё один момент - конструкторы позволяют людям "попробовать себя" в роли автора, в роли "создателя" или "творца". Уверен, многие бы не отказались, попробовать сделать операцию хирургическую, если бы была такая возможность, и при этом никто бы не умер и не пострадал (эдакий реалистичный симулятор, аля "виртуальная реальность"). Или не отказались бы полетать на самолёте, в роли пилота, например, на настоящем тренажере, на котором тренируют настоящих пилотов. Это привело бы в итоге к чрезмерному кол-ву "недо-хирургов" и "недо-пилотов"... Но, никого бы не убило и настоящих профессионалов своего дела - стали бы ценить ещё больше. Честное слово, пусть лучше "сайты штампуют", чем в подъезде со шприцом стоят...
    Ответ написан
    4 комментария
  • Как в Drupal правильно подключить стили для мобильных устройств?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Создал его, подключаю в папке шаблона в файле header.php
    Раньше я помню, файлы стилей в module.info (или как-то так) подключались. В каком-то системном файле шаблона, там где описание шаблона, название, скриншот и т.д. прописываются... Этот файл прям в корешке шаблона лежал, с расширением .info кажется. *Возможно, я что-то забыл за давность лет или ошибаюсь...

    Он подключился, вот только стилям даже при меди-запросах приоритет не ставится, то есть все равно используются основные стили сайта.
    Порядок подключения правильный? По логике, media-запросы должны идти после основного контента, т.е. это должен быть последний файл стилей или по другому: "рестайлинг" должен после того, как основной элемент уже отрисован.

    обязательное условие -- весь респонсив писать в отдельно созданном файле.
    Пишите в отдельном, подключите его в конце основного. Эффект по моему, будет тот же...
    Ответ написан
  • Бесплатный VPS?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Разрабатываю сетевое приложение и необходимо протестировать его работу на "полигоне".
    Надеюсь, Вы оцениваете свои труды больше чем в 1.5$?

    Если так, рекомендую ознакомиться с вот таким вариантом. Дешево, сердито, триал целый месяц всего за 90руб.

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

    Решение в виде дедиков не подходит, т.к. нужен статичный IP, стабильная скорость сети и вменяемая админка.
    Все, абсолютно все, дедики, что я видел - имели статический IP, стабильную скорость сети в 100Мбит и выше и вменяемую админку в виде VNC и/или SSH-управления и возможность поставить туда какую угодно другую админку.

    Ещё есть VirtualBox - вообще бесплатно, любая ОС, скорость сети - ограничена только Вашими ресурсами, любая админка, почти любая конфигурация и все прочие прелести жизни, включая несколько статических IP, до 4-х сетевых интерфейсов, независимых, и всё остальное, что пожелаете.
    Ответ написан
    9 комментариев
  • LAMP или не LAMP вот в чем вопрос?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    И еще, кажется сейчас куда популярнее nginx в качестве сервера. Почему LAMP тогда не включает его?
    Это всё дешевый маркетинг. Безусловно, nginx быстрее в ряде случаев, но это не значит, что он быстрее в 100% случаев. На малой нагрузке и при отсутствии гигабайтных файлов скачиваемых пользователями на скорости 64Кбит/сек., массово - Apache выдаёт вполне себе хорошие скорости, очень даже сравнимые с Nginx.

    Apache "медленнее" не в 100 раз, а обычно в 1.5-2.5 раза (среднестатистические данные, понятно, что показатели могут сильно разниться в зависимости от тестов). И обычно эта "медленность" проявляется на действительно неплохих нагрузках. Я бы даже сказал так, Nginx скорее более устойчив при высоких нагрузках атаках аки DDoS, чем Apache, т.к. потребляет меньше ресурсов в виду особенностей своей архитектуры. Но, стоит понимать, что веб-сервер - это далеко не всё, что может потреблять ресурсы сервера, и от безграмотной настройки никакой конкретный сервер не спасёт.

    Apache - куда проще конфигурировать хотя бы по тому, что он имеет механизм ".htaccess", Вы представляете разницу (логически) между "скопировать 3 строчки и вставить их в .htaccess" и "переписать кусок конфига nginx"? Когда Вы делаете это систематически и когда сервер Ваш - проблем нет. А когда пользователю приходится приходится это делать не часто, и тем более на каком-нибудь виртуальном хостинге - апач решение сразу нескольких проблем.

    Настройка связки Apache + одна версия PHP, ощутимо проще для не очень опытного администратора, чем аналогичная связка PHP+Nginx. Но, Вы же понимаете, что люди хорошо разбирающиеся в настройках сервера обычно пытаются сделать что-то вроде apt install lamp

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

    Из Apache гораздо проще выпилить ненужные модули или включить нужные. Nginx в большинстве случаев, нужно будет пересобрать целиком, из исходного кода (да, я знаю про механизм подключаемых модулей, но пока что, это не панацея и даже не близко).

    Не редко, Apache "прячется" за Nginx.

    P.S. Что использую я? В основном Nginx, по тому, что я к нему привык, по тому, что сервера обычно свои и "железные", по тому, что на его особенностях завязана структура пары крупных приложений, по тому, что с ним без особых проблем получилось прикрутить несколько версий PHP и всякой другой ерунды (так сложилось исторически), по тому, что я собираю его из исходников в более чем половине случаев... и т.д. Но, не нужно списывать Apache со счетов только по тому, что Вы где-то начитались, что "Nginx быстрее". Оба сервера имеют полное право на существование, и у обоих есть свои как сильные, так и слабые стороны. Не нужно пытаться оптимизировать сайт по нагрузке, если его посещают 30 человек в месяц.

    LAMP или не LAMP вот в чем вопрос?

    Я не знаю, как ставиться LAMP и есть ли команда установки именно "LAMP"a, но Вам ничего не мешает набрать в консоли что-то типа "apt install apache php mysql" (условно) и поставить всё ровным счётом то же самое, что и ставит LAMP, или "apt install nginx php mysql" и поставить ровно то же, только с Nginx'ом вместо Apache'а.

    UPD. Есть ещё Varnish, так на вскидку, в 70% проектов он будет выдавать просто феерическую производительность, особенно при ооочень тонкой его настройке, достаточном кол-ве памяти и т.д.. Я думаю, он даже в связке с Apache+PHP будет показывать куда большую производительность, чем "голый" Nginx+PHP, т.к. будет "выплёвывать" страницы целиком, из кэша, даже не обращаясь к бэкэнду (вернее, делая это не часто). Но, это не говорит о том, что нужно срочно всем собраться и бегом побежать ставить Varnish на каждый 2-й сайт с Wordpress'ом и посещаемостью 100 человек в год.
    Ответ написан
    4 комментария
  • Как хранить НЕ plain text сообщения в базе данных?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Почему бы не сделать это через JavaScript? Ищем в сообщении шаблон вида "@буквы", если то, что после "@" есть в списке пользователей, который можно например, закэшировать в браузере или запрашивать через AJAX - меняем "это" на соотв. ссылку или то, что на нужно.

    Вариант 2: Парсим сообщение на сервере, в поисках шаблона "@буквы" (можно через регулярку), если пользователь есть в базе - заменяем на соотв. код (ссылка, выделение и т.д.).

    Так на вскидку, первый вариант подойдёт для выделения личных сообщений, второй - для того, что бы имена выделялись вообще, как таковые (как например, на тут, на Тостере).
    Ответ написан
  • SASS компилятор для Sublime Text (Windows)?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Или как компилируете scss>css вы?

    Думаю, оптимальный способ при соло-разработке - это NodeJS+Gulp+модули. Он умеет и SASS и много ещё чего, и не смотря на ряд его недостатков - работает он довольно таки быстро. В т.ч. Вы сможете перезагружать изменившееся страницы автоматически, автоматически собирать изменившееся SASS-файлы и т.д.

    Плагин, например вот. Мануалов по настройке Gulp'а, его установке и т.д. - в интернете - как грязи.
    Ответ написан
    Комментировать
  • Почему не удаётся войти под root MySQL пользователем в PHPMyAdmin?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Возможно в том, что соотв. записи разрешающей вход - в базе нет. Можно попробовать из под рута запустить mysql-клиент (в консонли). Такой подход работает с MariaDB, с MySQL'ом возможно тоже прокатит.

    И посмотреть потом, кому с какого хоста можно заходить. База: mysql, таблица: user. Пример.
    Ответ написан
  • Какой PHP фреймворк для создания доски объявлений?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    наверняка нет специального фреймворка для доски объявлений) поэтому просто посоветуйте, пожалуйста, самый популярный, удобный, новый

    Самый простой - CodeIgniter
    Самый популярный - в СССР - YII(2), в остальном мире - Laravel5
    Самый удобный - Symfony3
    Самый новый - ещё не выпустили, в разработке пока

    P.S. Всё выше написанное очень субъективно и зависит от Ваших личных предпочтений, возможностей, способностей и прочих факторов. И конечно же, никто Вам ничего объективно не посоветует, т.к. будет очень хорошо, если тут будет с дюжину человек хотя бы, которые действительно хорошо знают хотя бы 3-4 фреймворка, что бы их сравнить. Так же, неплохо будет, если большая часть отвечающих здесь будет знать на отлично - хотя бы 1 фреймворк :)

    P.P.S. Делайте выводы! :D
    Ответ написан
    Комментировать