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

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Оправдано ли будет использование NodeJS в качестве бэкенда крупного приложения?

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

    На ноде легко быстро говнять, это главное ее преимущество. Для крупных проектов на первый план, как правило, становятся: безопасность, поддерживаемость, тестируемость, расширяемость и надежность.
    Что бы сделать что-то действительно крупное вам потребуются драконовские соглашения, которые во многом будут противоречить идеологии этой платформы, которые в других экосистемах будут излишними.

    Приведу несколько примеров.

    Валидация аргументов, да можно заюзать typescript, как базу для этого, но есть момент: по хорошему, если вы вызвали некий метод с неправильными данными - его штатная работа не возможна, не плохо бы бросить исключение, но не все так просто, если ваш даже синхронный метод вызовется асинхронно - вы обязаны, либо сделать его сразу асинхронным и передавать ошибку, либо всюду хреначить try-catch, чего оптимизатор v8 не любит.

    С тестами асинхронного кода все очень плохо, вам придется обмазываться всякими proxyquire, sinon и т.д. При этом очень внимательно следить за очисткой состояния. Да, я понимаю, что моки и в других языках нужно юзать, но тот же proxyquire можно сравнить с php-шным runkit, что как бы вообще по хорошему трогать не надо, а придется. Примите также за исходную, что вы будете много времени тратить на то, что бы понять какой из тестов асинхронщины у вас сфейлился.

    Рано, или поздно у вас возникнет потребность в неком DI контейнере, привычный require 'myService' уже не прокатит. Пробросы зависимостей станут источником ошибок. Если вы не будете это дело покрывать функциональными тестами много ошибок обнаружите уже на stage сервере.

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

    Лука Никитин
    Не проводили тест, когда по 2 сервера и на ноду и на php?
    Ответ написан
    2 комментария
  • Как грамотно спроектировать MongoDB?

    mannaro
    @mannaro
    Умею профессионально гуглить
    ИМХО, я бы тут взял обычную реляционную БД.
    Ответ написан
    2 комментария
  • Как вызвать метод из другого компонента во vue.js?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    Или пилите глобальные функции типа сервисы или пилите vuex и делите state между компонентами.

    Так как вы пишете не надо, это против всех паттернов вообще идёт.
    Ответ написан
    Комментировать
  • В чем разница между "i = i + 1" и "i += 1"?

    MaksimSa
    @MaksimSa
    Ломаю стены
    Никакой разницы. В ruby нет i++, а для сокращения 'i = i +1' можно использовать 'i +=1'
    Можете посмотреть документацию, например здесь: https://www.tutorialspoint.com/ruby/ruby_operators.htm
    Ответ написан
    Комментировать
  • Как по новому без лишних движений задеплоить приложение на Ruby on Rails на сервер?

    teke_teke
    @teke_teke
    programador
    Просто разверните гит на сервере, скачайте в него код из репозитория и запустите сайт. Потом уже наварачивайте миграции, сертификаты, nginix....
    Ответ написан
    2 комментария
  • Как учиться новому после рабочего дня?

    @Yarrs
    Привет, тоже кину пять копеек.
    Во первых задай себе вопрос, чего ты хочешь, и чего тебе надо. С этого надо начать.
    Мы что-то делаем не просто так, а ради чего-то. Задай себе простые вопросы, кто ты, где ты находишься, в чем твои цели и предназначение. Программирование само по себе отстой, но с него можно начать. Когда то в 80 годы меня обуял восторг, когда я в классе третьем смог понять смысл a=a+1 Но с тех пор много воды утекло. Пойми чем ты хочешь на самом деле заниматься. Что является твоей настоящей целью, заработать денег, вырасти в социуме, поднять детей, прожить интересную жизнь. Как правило в жизни не выйдет получить всё, время это такой ресурс, который можно пустить либо туда, либо туда, либо еще куда. Делай всегда это с умом.

    Когда поймешь что тебе нужно, составь список целей, цели это не что-то постоянное, но вполне себе динамичное и постоянно меняющееся, мы меняемся, мир меняется. Следуй своим целям. Запомни один хороший принцип - возьми сначала себе. Работа хорошо, ты лучше. Как и где взять дело твое. Способы есть разные. Я ниже напишу немного конкретики. Каждый день нужно осознавать свой список целей и учитывать его в текущем дне. Ставить себе задачи на день и назначать самую важную. Если ты не выполнил эту задачу, считай что день неудачен. Каждый день выдели 15 минут времени вечером и делай анализ дня. Это вместе с пониманием своих ценностей и целей самое важное.

    Теперь немного конкретики.
    Вариантом отщепить время себе масса.
    1) Сними комнату рядом с работой.
    2) Вставай раньше. Ложись раньше
    3) Усталость, это усталость от схожего вида деятельности. Усталость можно легко побороть если заняться чем-то иным. Умственно / физически например переключается будь здоров.
    4) Первый час на работе посвяти только обучению. Обычно люди первый час тратят на котиков, чатики и прочую п-нь, будь не как все.
    5) Поговори с начальником, и скажи что тебе нужно развиваться и обучаться. Посмотри на реакцию. Если он не монстр вопрос можно решить.
    6) Всегда думай перед тем как делать. Решения существуют, часто не на поверхности.

    Теперь несколько вредных советов. Как стоит жить и работать.
    1) Если решил связать свою жизнь с программированием, стоит понимать, что платят те у кого есть деньги, и платят столько сколько готовы заплатить. Отсюда выводы. Больше получают узкие специалисты, которые работают с чем то редким и нужным тем у кого есть деньги. Работая на бедных ты заработаешь ровно чуть больше чем на спасибо. Это как у врачей, стоматологи, к которым захаживают сытые бюргеры с зубной болью на коне, кокой-нибудь травматолог / хирург имеют 90 процентов своей обычной клиентуры бомжей и нищебродов. Но процентов 10 попадается людей с деньгами. А вот анестезиолог вообще с клиентурой не работает, денег дополнительно ему вообще не приходит. Отсюда обилие медицинских анекдотов про бедных анестезиологов.
    2) Собственники и заинтересованные в бизнесе люди на платят просто так, а платят за решение проблем. Чем страшнее на первый взгляд проблема, тем больше за нее можно попросить денег. Сложные проблемы решаются разбиением на более мелкие задачки. Но переоценивать свои силы тоже не стоит. Если сделал что-то крутое скромничать не надо. Тебя будут оценивать в том числе по тому, сколько ты просишь.
    3) У предыдущего пункта есть небольшое следствие. Владельцу главное решение и сроки, ему похрен на красоту кода и прочий глупый перфекционизм.
    4) Лучше место работы для получения стартового опыта, какая-нибудь программисткая контора, но она же худшая в плане роста. Ты окружен людьми примерно твоего уровня и способностей, которые будут неизбежно грызться за место под солнцем, каждый твой начальник будет воспринимать тебе как угрозу своему месту. Прорваться в такой системе сложно. Кроме того работать надо на первое звено в пищевой цепочке. Пока линейному программисту что-то перепадет от базовой ставки 10 человек отщипнут по цепочке.
    5) Если ты работаешь в обычной конторе, постарайся выйти со своими идеями на руководителя бизнеса (гендира), он единственный кто заинтересован в проекте в целом, и может воспринять что-то от твоих мыслей лично. Люди ниже просто попытаются тебя использовать в своих целях.
    6) Люди если смотреть поверх бла бла бла всегда действуют в своих интересах, но только так как сами их понимают. Людей можно предсказывать и читать.
    7) Руководители нагружают тех лошадей что тянут. Идеальный работник тот, кто просит мало работает много. Повышения? Не слышали. Зачем повышать того кто хорош на своем месте.
    8) Добиваются чего-то только те, кто выходит за флажки. Есть загон для стада, где всегда будет скучно, обыденно и тухло, но жить можно, есть и другие возможности.
    9) Самая тупая ошибка людей верить, что если будешь хорошо и долго работать что-то изменится. Ничего не изменится.

    Ну хватит в общем, что-то я увлекся, всегда думай головой, вот мой совет.

    ПС: Забыл добавить. Обязательно надо выбираться из провинции в Москву Питер, лучше в Москву. Дальше уже можно как остаться, так и двигать дальше. Если возраст и прочие дела позволяют.
    Ответ написан
    10 комментариев
  • Как учиться новому после рабочего дня?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. 9 часов. Это уже ошибка. КЗОТ писали не дурни. 8 часов достаточно для работы, если человек не чаи пьет
    2. Пересмотрите процесс работы. По приходу на работу сначала делать самые важные. Прошу прочесть внимательно: сначала важные, а только потом срочные и другие. Отличие важных от срочных в том, что одни, как правило, делаются разово и про них забываются, а другие хоть и не срочные, но они влияют стратегически.
    3. Уделяйте время на то, чтобы подумать над "светлым будущим", т.е. создать\актуализировать список страгеческих целей и задач
    4. Делайте утром зарядку. Растяжку, отжимания, приседания. Это влияет на энергетику в организме
    5. Делайте перерывы во время работы.
    6. Чаще пейте воду
    7. Займитесь спортом. На своей шкуре опробовал и четко знаю то, что до занятия плаванием делал меньше, чем сейчас
    8. Окружите себя теми, кто куда-то стремится. Это не значит что надо всех других послать в Южную Америку на оз. Нахой. Это значит, что надо чаще общаться с одним типом людей и меньше с другим
    9. Стремитесь работать на результат, а не подсчет "жопочасов". В дальнейшем ставьте работодателю на собеседовании вопрос "Вам нужны жопо-часы или результаты?". Старайтесь выявить жмотов. Если вы вдруг справились не за 5, а за 4 часа, а работодатель жмотится и боится выделить время на самообучение сотрудника, хотя эти же знания будут применены при решении рабочих задач, то уходите от такого работодателя!

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

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

    Старайтесь избегать рывко-образной работы. Все должно быть стабильно. Пусть даже небольшими кусками работы, но стабильно и бессбойно!
    Ответ написан
    6 комментариев
  • Как для небольших разрешений экранов открывать поддомен а не основной сайт?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Никак.
    Разрешение на сервер никак не передается.

    Решение.
    На клиенте.
    1. Смотрим наличие куки - флага разрешения. ( большое/маленькое ) https://learn.javascript.ru/cookie
    2. Если куки нет - определяем разрешение https://developer.mozilla.org/ru/docs/Web/API/Wind...
    https://developer.mozilla.org/en-US/docs/Web/API/Screen
    2.1 Ставим куку - флаг разрешения
    2.2 Если разрешение маленькое - рефрешим страницу

    На сервере.
    1. Если нет кука - флага разрешения имеет значение Большое или отсутствует совсем, то отдаем полную версию. Иначе мобильную.

    nicknotfound.com/2009/01/12/iphone-website-with-nginx
    Ответ написан
    1 комментарий
  • Какую документную бд выбрать?

    @Nc_Soft
    postgresql
    Ответ написан
    Комментировать
  • Как в RoR использовать разные версии Ruby и Rails для каждого проекта?

    Dem1
    @Dem1 Куратор тега Ruby on Rails
    Ruby on Rails developer
    rbenv и rvm
    Ответ написан
    Комментировать
  • Как в Nginx сделать редирект с HTTP на HTTPS?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Не мешайте HTTP и HTTPS в одном блоке, ничего хорошего из этого не получится.
    server {
        listen      80;
        server_name website.com;
        return      301 https://$server_name$request_uri;
    }
    Ответ написан
    2 комментария
  • Как взламывают сим-карты?

    NullByte
    @NullByte
    Bad gateway
    Сдается впечатление, что у вас параноидальный психоз. У меня тоже такое бывает. Если вы - не преуспевающий бизнесмен или политдеятель, не террорист, не суперхакер, не шпион или беглец, за которым охотятся власти всех стран и интерпол, а обычный работник какой-то там компании, утром встаете, завтракаете, идете на работу, возвращаетесь, бухаете, смотрите фильмы а потом спать - то хрен вы кому нужны. Ну или вас преследуют Морфиус и Тринити и спешат сообщить, что вы Избранный и вам надо принять для себя важное решение: быть им или остаться в повседневной рутине.
    Про симку: симки взломать реально, если вышеперечисленный абзац к вам не относится, вам есть что скрывать с левой и правой стороны, а факты о слежке все дальше продолжают о себе знать, то скорее всего на ваши симки просто сделали дубликат и пытаются таким образом пробивать вашу личность. Что делать в этой ситуации? Просто отключите смарт, либо выкиньте из него все симки, общайтесь только через вай-фай по ватсаппу, скайпу, телеграму (последний поможет в вашем случае). Ограничьте список контактов. Заюзайте ВПН-услуги, благо в современных смартфонах его можно настроить.
    Эти советы касаются только вашего телефона. Если ваши "агенты" окажутся довольно настойчивыми, то увидя что не получается с этой стороны, начнуть бить с другой.
    Но вообще мне кажется, что эти "студенты" - обычные ученики факультета ИБ и пишут дипломную о защите информации в сотовых сетях, ну а вас просто выбрали как подопытного, вполне возможно через ваш же круг общения :)
    Ответ написан
    13 комментариев
  • Когда лучше всего применять git?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    всегда
    Ответ написан
    Комментировать
  • Миграция данных mysql => postgresql?

    lesovsky
    @lesovsky
    System engineer and PostgreSQL DBA
    вот тоже приличный инструмент
    Ответ написан
    Комментировать
  • Как удалить свой аккаунт с Хабра?

    jalkoby
    @jalkoby
    напиши пост, и тебя почестями отправят на покой
    Ответ написан
    1 комментарий