• Существует ли "Грокаем ООП"?

    BorLaze
    @BorLaze
    Java developer
    Вы не с того начинаете.

    GoF - это нечто вроде best practices, как и в каком случае применять те или иные возможности, предоставляемые ООП (полиформизм, абстрактные методы/классы, интерфейсы и т.д.).
    Само собой, что из себя представляют понятия, перечисленные в скобках, надо уже знать.

    Если совсем уж на пальцах, GoF - это правила правописания. Естественно, прежде чем их учить, надо знать буквы.
    Ответ написан
    2 комментария
  • Каковы современные тенденции веб программирования?

    @andrei_pro
    Работаю фул-стек разработчиком уже давно и использую именно такой стек почти везде, поделюсь мнением.
    Стек Bootstrap + Laravel + VueJS вы выбрали отлично, подойдет для любого уровня приложений. У нас хайлоад управление админкой мы делаем на Laravel + VueJS, а хайлоад апи на симфони и ноде.

    Отвечая на ваши вопросы:
    чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах

    Bootstrap как раз для этого, изучите все детали верстки на разные устройства.

    чтобы оно корректно работало на старых/дешевых смартфонах

    Забудьте про jQuery, пишите на vuejs (>es6) + vanilla js, используйте вебпак + полифилы если старые девайсы нужны.

    Подытожу: учите bash + git + composer + laravel + vuejs + bootstrap + sass + js (es6) + docker. (бутстрап по желанию, если объем стилей не большой пишите на чистом css)
    Ответ написан
    6 комментариев
  • Возможно ли отследить отложенную задачу (at) с помощью команды ps?

    Задачи at запускаются лишь в назначенное время.
    Раз в минуту через cron производится проверка, есть ли команды для запуска и запускаются, если время назначенного запуска уже наступило или уже прошло.
    Для просмотра списка задач используется команда atq.
    До запуска скрипты хранятся в /var/spool/atjobs - можно посмотреть содержимое скриптов и их параметры запуска.
    Ответ написан
    Комментировать
  • Пути заполнения базы данных адресами РФ?

    deepblack
    @deepblack
    Вариантов немного: ФИАС
    Ответ написан
    Комментировать
  • На каких технологиях разрабатывать чат?

    @andrew8712
    Все, что понаписали в ответах - overkill для небольших проектов. Начните с Google Firebase
    Ответ написан
    Комментировать
  • Переход с Angular на React. Тренд или нет?

    @msdosx86
    Реакт это библиотека, а Ангуляр - это целый фреймворк. Если вы работаете в сфере энтерпрайза, то легче выбрать ангуляр, так как в нём уже есть то, что нужно для создания архитектуры огромного веб приложения и для поддержки кода в дальнейшем. Когда же огромные приложения начинают писаться на реакте, то это выглядит как мешанина из кучи npm пакетов (тот же редакс, санки, аксиос, флоу, реакт-роутер). Не спорю, что на реакте тоже можно большие приложения создавать, но для этого потребуется больше усилий (при одинаковых знаниях фреймворков). Почему? Да потому что в ангуляре с тайпскриптом и архитектурой, которую ангуляр навязывает разработчикам, можно применять классические паттерны проектирования, которые до этого применялись в классических языках типа джавы или c#. Их в обычном js'е тоже можно применять, но толку от этого не много, так как классические паттерны завязаны на ООП и статической типизации. Зачем нужны паттерны? Для поддержания кода. У нас в компании проекты поддерживаются по несколько лет (знаю проекты, которые поддерживаются уже больше 5 лет) и на проект подключают других людей. Кого то убирают, кого то подключают. И когда нужно поддерживать код, то тут тайпскрипт и архитектура ангуляра в самый раз позволяет всё это делать безболезненно (при условии, что код пишут хорошо). Весь этот, не побоюсь слова, "высер", который написал коллега выше, в сторону ангуляра обусловлен тем, что у ангуляра порог вхождения выше, чем у остальных фреймворков. И поэтому людям кажется, что там происходит какая-то магия. И получается, что люди не понимают, что там происходит и жалуются, что слишком сложно, но зато в реакте всё просто. В реакте действльно всё намного проще. Чтобы писать на реакте вам в принципе хватит знаний es6. Чего не скажешь про ангуляр. Ибо там тайпскрипт и rxjs, который просто понять не получится, надо изрядно постараться, чтобы начать думать потоками и как с ними работать. Но когда ты начинаешь понимать как работает rxjs, как работает сам ангуляр (change detection например), то становится просто невообразимо легко писать код. Весь хейт в сторону ангуляра из-за того, что фронтенда изначально не существовало как такового. Ведь был пхп и он прекрасно работал с хтмл. Потом появились шаблонизаторы и jquery. Всё это делалось бекендерами и фронтенда как такового не было. И потом появились фреймворки типа ангуляра, которые бОльшую часть логики взяли на себя и бекенд превратился в REST API. Фронтенд не был сложным, Ангуляр значительную часть логики взял на себя и тем самым усложнил фронтенд, поэтому те, кто привыкли формочки верстать, не могут осилить эти тонны абстракций. На каком нибудь фрилансе или средних проектах нет смысла в ангуляре, поэтому там и используются реакт и вью, ну и жиквери, куда ж без него. А если проект уровня 50-100К долларов, то тут ни о каких жиквери речи нет.
    Ответ написан
    4 комментария
  • Как грамотно использовать rem в адаптивной вёрстке?

    @cluberr
    Соль в том что что все размеры типографики, размеры заголовков и их отступы, отступы абзацев и высота строки задаются относительно базового шрифта например 16px. И если нужно изменить всю типографику под конкретное устройство, то в медиазапросе меняется всего одно значение - базовый шрифт, остальное меняется пропорционально.
    https://betterwebtype.com/rhythm-in-web-typography
    https://www.youtube.com/watch?v=b9M_7ytm-iM
    Ответ написан
    2 комментария
  • Как ускорить большое количество get запросов?

    sim3x
    @sim3x
    Быстрее чем может отдать сервер - никак
    Используйте scrapy - там есть весь требуемый функционал

    Если сайт донор на шареде, то его еще может прибанить хостер
    Потому не делайте на него 100RPS
    Ответ написан
    6 комментариев
  • Откуда берутся файлы usedscripts.js и content-script.js?

    SagePtr
    @SagePtr
    Еда - это святое
    Подозреваю, что какие-нибудь расширения браузера добавляют эти скрипты на страницу. Особенно исходя из названия файлов.
    Ответ написан
    Комментировать
  • Что такое тестирование sql запросов?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    я бы для начала почитал про чудо-команду EXPLAIN
    Ответ написан
    1 комментарий
  • Как попасть на фриланс без биржи?

    @InoMono
    Старые довольные клиенты приводят новых.
    Это крайне эффективный механизм, называемый "сарафанное радио".

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

    Сарафанное радио работает очень долго и очено эффективно.

    До сих пор работают с клиентами, с которыми познакомился в далеком 2002 году.
    И с теми кого они привели.
    И с теми кого привели те, которых привели те, которых привели первые.

    За все годы биржами пользовался из любопытства чем из за того, что кушать было нечего и нужна была работа.
    Объявлений не давал.
    Сайта нет.

    Важный момент: номер телефона все эти годы не менял.
    И e-mail тоже.
    Ответ написан
    5 комментариев
  • Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?

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

    Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?
    Для человека который привык работать с реляционными БД, смириться с логикой и вообще с подобными БД - довольно сложно. Для тех, кто работает с реляционными БД профессионально - сделать это ещё сложнее...

    Если сравнивать с реляционными БД и с оглядкой на конкретно MySQL - монга идеально вписывается там, где структура данных заранее неизвестна. Тут я хотел привести пример, но не смог придумать ни одного дельного примера, после того как начал плотно работать с PostgreSQL... Давайте попробую из практики. Мы один раз применяли монгу в проекте где есть десятки и сотни тысяч товарных позиций и у каждой из них свой уникальный набор различных свойств. На основе уже имеющихся свойств, "соседних" товаров, контентщику предлагался наиболее вероятный набор параметров, которые нужно заполнить, но в любой момент он мог удалить или добавить любое поле и/или множество значений одного из них, например, "Цвет: черный, серый, фиолетовый". Всё это дело попадало под разные динамические фильтры и далее по цепочке... В то время, насколько я помню ещё не было поддержки JSONB-формата у PostgreSQL, по этому мы остановились на MongoDB. Ну и конечно же, желание "воткнуть ультра новую и модную БД в проект" сыграло свою роль...

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

    Безусловно, не редко можно встретить проекты в которых даже в реляционных БД не прописаны, например, внешние ключи и контроля целостности данных как такового нет, но обычно это происходит по следующим причинам:
    1. Очень низкая квалификация администратора БД проекта
    2. В попытке выжать из базы больше производительности, не найдя других методов оптимизации
    3. Данных настолько много, что БД/ключи - начинают "сыпаться", не редко это связано с п.1

    Так же, последние тесты показывают, что PostgreSQL почти не уступает MongoDB даже в её родной среде (на уровне данных в формате JSON). А в некоторых аспектах даже превосходит её... Подробности Вы можете увидеть на некоторых конференциях по Postgres (да, на конференциях по MongoDB, Вы вряд ли увидите, как кто-то будет рассказывать, что [их любимая] монга "хуже" некоторых других движков...). Кстати, поддержку формата JSON стандартизировали (наконец-то) на уровне SQL-стандарта (если я не ошибаюсь) и в самом ближайшем будущем, думаю стоит ожидать полноценную поддержку оного в SQL-базах, в т.ч. поддержку в бинарном виде с возможностью индексации данных (кстати, некоторые SQL-базы уже такое умеют).

    Моё понимание, ответа на вопрос, "когда действительно стоит использовать MogoDB?" звучит примерно так: Исключительно в тех случаях, когда Вы понимаете, что она станет действительно хорошим решением для поставленной задачи и сейчас и в будущем. В моей практике, таких проектов можно было бы насчитать ничтожно мало, а точнее около нуля, особенно с учётом развития некоторых современных SQL-БД и вообще направления "JSON в SQL" в целом. Но, безусловно такие проекты могут быть и есть (в данном случае, не у меня). Но, тут стоит обратить внимание на крайне важный факт - когда всплывает такой проект, что бы адекватно оценить наиболее оптимальную БД под него - нужно знать как минимум пару-тройку SQL-БД, со всеми их особенностями, достоинствами и недостатками... причем не просто "знать", а хорошо знать, "изнутри". А так же знать все характерные черты монги, а так же её особенности, достоинства и т.д. То есть, если Вы задаётесь вопросом, "а хорошо ли впишется монга в проект N?" и не можете найти на него однозначного ответа, вероятнее всего, что в долгосрочной перспективе, в "проект N" она впишется плохо.

    P.S. В заключение, хочу ещё раз напомнить, что "JSON в SQL" - активно развивается... Со всеми вытекающими.
    Ответ написан
    7 комментариев
  • SQL внутри python multiprocessing. Как?

    Qwentor
    @Qwentor Автор вопроса
    Веб-программист
    В общем, не только cursor, но и само соединение создаю внутри и все ок
    Ответ написан
    Комментировать
  • Как сервер определяет что браузер закрыт (сессия)?

    Stalker_RED
    @Stalker_RED
    Когда вы закроете браузер вот эти вот куки будут удалены. По их отсутствию сервер и определит.
    yNGCPiK.png

    Можно настроить браузер (или поставить плагины) которые будут сохранять текущие сессии. В хроме я использую session buddy, в фоксе тоже как-то работает, может TabMixPlus это делает, может какая-то галка в настройках, не помню уже.
    Ответ написан
    Комментировать
  • Как работает электронная почта?

    Это неправильная схема, соответственно выше к ней неправильные комментарии.

    MTA (mail transfer agent) используется для обмена почтой между серверами, MDA (mail delivery agent) для локальной доставки письма в почтовый ящик, и MTA и MDA работают на почтовых серверах. MTA и MDA могут быть частями одной почтовой программы (большая часть MTA в той или иной степени поддерживают локальную доставку), а могут быть разными приложениями. Но к компьютеру ползователя ни MTA ни MDA не имеют отношения, они работают на почтовом сервере. MUA используется для получения письма из почтового ящика, создания письма, передачи письма MTA.
    Схема такая:
    1. MUA формирует письмо. В качестве MUA может выступать почтовая программа или веб-интерфейс.
    2. MUA передает письмо MTA отправителя (relay), в случае почтовой программы через протокол SMTP Submission (SMTP с авторизацией), в случае веб-интерфейса обычно напрямую.
    3. MTA отправителя (relay) определяет MTA получателя (mail exchanger) через MX или A записи DNS.
    4. MTA отправителя (relay) передает письмо на MTA получателя (mail exchanger) по протоколу SMTP (без аутентификации)
    5. MTA получателя либо передает письмо MDA для локальной доставки в почтовый ящик (обычный путь доставки) либо передает письмо другому MTA, например если в ящике установлено перенаправление.
    6. MDA кладет письмо в ящик получателя
    7. MUA получателя получает письмо из ящика через протоколы POP3, IMAP4 или веб-интерфейс
    Ответ написан
    2 комментария
  • Как принимать оплату заказов дизайнеру ИП?

    @Paladin_rrr
    Для получения по безналу - нужен только ИП и счет в банке...
    А вот для получения наличных, с карточек, электронных денег с 01.07.2017 вы обязаны будете использовать онлайн-кассу и выдавать чеки по 54-ФЗ - а это лишние 40-50 тысяч рублей в год... Так что, если без кассы - тех кто хочет заплатить электронными - посылать платить через банк по реквизитам по квитанции...
    А БСО - Бланки Строгой Отчетности - для новых предпринимателей уже нельзя будет использовать - только онлайн-касса.

    Для приема от иностранцев - нужен валютный счет завести, контракт, если по закону...
    А так PayPal или на валютные счета своей карточки можно - если суммы небольшие и в основном от частных клиентов - но для этого ИП не нужен, а нужна смелость )
    Ответ написан
    Комментировать
  • Как юзать JQuery в Angular2 / Webpack?

    kalyukdo
    @kalyukdo
    Frontend developer
    зачем вы это делаете??? не нужно это делать! если вы берете фреймворк типо ангуляра, незачем в него мешать библиотеки типо JQ, это бессмысленно и не верно, так как там есть все уже в ангуляре, + манипуляция с домом запрещена!
    Ответ написан
    4 комментария
  • Верно ли я понимаю суть webpack, таск-раннеров, requirejs и модулей?

    Иными словами, похожего результата я добьюсь варварским методом, склеивая файлы без всяких модулей через gulp (инкапсулируя содержимое при помощи объектов). Верно?

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

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

    Сравнения со стеком C/C++:
    - модули это единицы компиляции (compilation unit). Настоящих модулей в C++ мы никак не дождёмся, так что это пока лучшая аналогия :); модули, написанные на языке, отличном от целевого JS (например на TypeScript или ES2015) подлежат компиляции; JS, являющийся результатом компиляции похож на объектный файл;
    - вебпак похож на линковщик, с той разницей, что плюсовый линкер собирает в бинарник только то, что ему дают, а вебпак наоборот, может запрашивать компиляцию модулей (для чего существует концепция загрузчиков - loaders). Представьте, если бы линковщик просил компилятор С++ скомпилить нужный файл. Так ведёт себя вебпак;
    - выходные большие файлы - бандлы - это вроде готовых lib файлов или бинарников. В них напихано много скомпилированных модулей, и их можно либо слинковать с чем-то еще (если это библиотека), либо запустить (если это бандл для загрузки на HTML-страницу);
    - как линковщик (пусть и с возможностью запроса нужного модуля) не заменяет make, так и вебпак не заменяет таск-раннеров.
    Ответ написан
    Комментировать
  • Куда можно залить сайт, кроме хостинга?

    mannaro
    @mannaro
    Умею профессионально гуглить
    ставите nginx, если роутер, то пробрасываете порт и все)
    Ответ написан
    Комментировать