Ответы пользователя по тегу Веб-разработка
  • Что выбрать. http параметры или body?

    @lega
    Я предпочитаю однотипные запросы (без бардака с put/patch и аргументами и с body, хотя кто-то называет это best-practice)
    Т.е. я стараюсь всегда использовать post + json в body - т.к. покрывает почти все случаи.
    И иногда get с аргументами - когда нужно кеширование.
    Ответ написан
    Комментировать
  • Array of embedded documents vs Foreign key?

    @lega
    Вывод: если требуется фильтровать по полям вложенных док-ов, то стоит реализовать коллекции не как вложенные, а в виде отдельной коллекции, как в РБД.
    Чаще да. Так же бывают такие варианты как пометить определенных пользователей чтобы всех не перебирать, либо дублировать "отличительные" комментарии в отдельную коллекцию или наоборот дублировать в "документ пользователя", в nosql оно гибче.

    N * LogM. То есть нужно просмотреть каждого пользователя - N итераций
    Чтобы не делать N итераций используют индекс, чтобы получить нужные документы без переборов (а переборы задействуют "диск").

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

    Comments будет иметь N * M док-ов, а сложность будет Log( N * M ).
    Откуда у вас тут Log? Чтобы получить "все комментарии имеющие 200 просмотров.", коллекцию пользователей трогать вообще не обязательно.
    Ответ написан
  • Как организовать поиск и хранение постов по хештегам?

    @lega
    Теги складываете в массив внутри документа и его индексируете - будете быстро находить документы по тегу.
    Ответ написан
    Комментировать
  • Переезд на https - как вернуть скорость ответа сервера?

    @lega
    Если идет редирект для каждого реквеста, то это неправильно. все ссылки должны быть изначально с https, что-б работало напрямую без редиректов.
    Ответ написан
    1 комментарий
  • Почему на этом сайте такие странные названия классов?

    @lega
    у них и js такой же странный, может защита от копи-паста (uglyfy), может фрейморк сгенерил (scoped css) что-б колизий не было, в любом случае это сгенерированно автоматический.
    Ответ написан
    Комментировать
  • Как сделать поиск по текстовому запросу для mongodb?

    @lega
    В монге есть полнотекстовый поиск, регулярки только для маленьких коллекций ибо перебирают всю коллекцию без индексов.
    Ответ написан
    Комментировать
  • Как аргументировать начальству создание существующего проекта заново, с ноля?

    @lega
    В большинстве случаев это экономический не целесообразно, и профессионал должен это учитывать.

    В вашем случае лучше попытаться плавно интегрировать опыт в текущий проект, разграничивая старый и новый код, (компоненты, микросервисы, "черные ящики" и т.п.), так же по чуть чуть можно будет подменять компоненты старого кода, на новые.
    В итоге через какое-то время новый код будет превалировать, и может даже можно будет завернуть старый код в отдельный ящик чтобы не вонял на весь проект.
    Ответ написан
    4 комментария
  • Как лучше хранить данные о трафике в БД?

    @lega
    Хотите экономно? "Сворачивайте" на ходу и раскладывайте готовый результат по группам (отчетам).
    Ответ написан
    Комментировать
  • Как писать много кода, оставляя его простым, как в начале?

    @lega
    Я делаю как бы "микросервисы внутри" (черные ящики) - модули с несколькими публичными методами, которые должны давать гарантированный результат. А уж внутри черного ящика может быть любое месево, главное оно не влияет на проект. Так же любой черный ящик может быть переписан с нуля не затронув остальные части проекта.
    Любой черный ящик можно будет превратить в реальный микросервис, так же не затронув остальной проект.
    Тут я для себя сделал небольшой свод правил, хотя он относится к синхронному коду (стилю), а у вас js, тут со старта сложность повышается. Бизнес логику писать в асинхроне не желательно.
    Ответ написан
  • Многопоточность в python?

    @lega
    Для 25 ссылок можно и на потоках сделать, даже работать может быстрее если домены разные.
    asyncio - это если что-то серьезней или просто охота покопаться в asyncio
    Ответ написан
    Комментировать
  • Как лучше всего сделать IT-блог?

    @lega
    Статический генератор, текст в git, комменты от дискуса.
    Ответ написан
    Комментировать
  • Какой подход оптимальнее?

    @lega
    Можно что-то типа такого: jsfiddle.net/lega911/gh3coxfy
    Если вы хотите что-то типа самостоятельных виджетов, то можно сделать попроще
    Ответ написан
  • Правильно ли я использую микросервисную архитектуру?

    @lega
    было принято использовать микросервисную архитектуру
    все было понятно, то здесь не очень.

    Похоже на "Поди туда - не знаю куда".
    А цель какая? Это ведь тоже надо рассматривать как "инструмент по задаче". Расходы времени точно вырастут. Если попробовать/поиграться - то ок.

    Есть ещё 3-й тип, когда делается монолит но с изолированными компонентами (микросервисами) внутри - нет столько возни деплоя как с микросервисами, и нет затрат (сетевых) на вызов микросервиса. А когда приходит реальная необходимость выделить компонент в микросервис, то он легко отпочковывается.
    Ответ написан
    Комментировать
  • Как лучше синхронизировать файлы сайта?

    @lega
    Настало время когда одного сервера стало не хватать.

    Чего конкретно не хватать?

    поставил проксирующий nginx
    Зачем нагружать "балансер" двойным трафиком, пусть клиенты напрямую ходят на второй сервер.

    Так же можно не синхронизировать, а раскидывать файлы по серверам, четные на 1-й сервер, нечетные на 2-й, но лучше префикс сервера в ид (имени) файла сделать.

    Таким образом будет экономия диска и более эффективное использование трафика.

    Есть и плюсы в простом дублировании (ваш вариант):
    1) Второй сервер - как бекап, если один из серверов умрет, хотя для бекапов есть инструменты лучше.
    2) Если один сервер умрет, то сервис может* продолжить работать, но медленней, а с "шардингом" (вариант выше) часть контента будет не доступна.
    С другой стороны, что вы будете делать когда будет не хватать диска на сервере?

    Ещё вариант - перебросить файлы на S3

    > было бы идеально в режиме реального времени.
    В том месте где сохраняете файлы можете дописать, что-б сохранять файл так же и на примонтированный сервер либо через ssh.
    Если нет возможности дописать, то можно сделать внешний скрипт который будет "слушать" изменения ФС и реагировать (копировать на др. сервер).

    В таких инструментах как GridFS можно легко настроить репликацию - будет реалтайм. Но его напрямую не заюзать (нужно код писать), поэтому можете поискать конкурентов.
    Ответ написан
    Комментировать
  • Python, web. Есть ли что-то между CGI и Flask?

    @lega
    Bottle.py, для админских задач как раз встроенного сервера хватит
    Ответ написан
    Комментировать
  • Grunt vs Gulp vs Prepros vs Codekit?

    @lega
    Использую Gulp, раньше пробовал Grunt.
    Так вот Grunt плох тем что это тупой конфиг, зачем это когда можно использовать JS, чуть в сторону и этих конфигов уже не достаточно. Вообщем это как сравнивать JS с Json по возможностям :)
    Ответ написан
    Комментировать
  • Какой js фремворк больше подходит для разработки одностраничных приложений?

    @lega
    Если Angular.js не понравится, попробуйте Angular Light.
    Ответ написан
    Комментировать
  • Knockout или Angular?

    @lega
    Тут описал небольшое сравнение Angular.js и Knockout.js.
    Ответ написан
    Комментировать
  • 1C или web - какое направление выбрать?

    @lega
    Просто хотелось бы иметь возможность стабильно иметь средний уровень доходов
    И работать до пенсии?

    Мне больше нравится когда люди становятся "свободными", работают по несколько часов в день и им этого хватает, "человек не для рабства был рожден" (c), на сколько я знаю путь 1С к этому не ведет.
    PS: сам занимался 1С около 10 лет.

    Сейчас у вас много энергии и сил, но любая работа "заедает" человека. Через 5-10 лет вы вполне можете ненавидеть 1С (как многие другие разработчики), попробуйте представить себя через 5-10 лет, смотрите в будущее а не на завтра. Вполне возможно у вас изменятся цели и ценности, "Искать работу за пределами РФ я не собираюсь" - не надо так категорично, нужно рассматривать разные возможности (ценности могут изменится).

    Плюсы 1С описали в соседних комментариях, давайте посмотрим на возможности web-разработчика:
    - "Море" интересных технологий.
    - Можно попасть в стартап который взлетит (имея долю в нем).
    - Можно создать свой проект с пассивным доходом.
    - Можно быть свободным фрилансером (жить на островах с удаленной работой)
    - Работать в красивых компаниях типа Яндекса, посмотрите на стиль работы тех программистов и их офисы.
    ... (по некоторым пунктам шанс не высок, но с 1С он гораздо ниже)

    На счет зарплаты, профессиональные фрилансеры могут иметь 30-50$ (и более) в час, таким образом вы можете прикинуть доход, так же представьте если $ вырастет до 100руб...

    Вообщем, по вам видно что вы настроились идти в 1С и большого смысла описывать плюсы web нет, поэтому совет наверно будет такой: работать с 1С, но не забывать про веб, изучать и пробовать, возможно в один момент вас перетянет на светлую сторону :)
    Ответ написан
    Комментировать
  • JS-шаблонизация на клиенте и доступность сайта для роботов: как лучше организовать?

    @lega
    Используйте phantomjs для формирования результирующего html и последующей отдачи поисковикам.
    Ответ написан
    Комментировать