• Как правильно разделять бэкенд и фронтэнд в сложных веб-приложениях?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Просто делаете RESTful API на бэке, а в качестве клиента - используете всё что угодно: SPA, натив, мобильное и т.д.
    Т.е., никогда не связывайте: логику, обмен данными и их представление.
    По аналогии с машинами: клиент - рычаги, сервер - механизм, передача данных - тяги.
    Проектируйте - точно также, исходя из того, какие данные и как должны выглядеть на клиенте и какие "рычаги" предоставить пользователям.
    Ответ написан
    Комментировать
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответы можно давать по шаблону: Учишь "ЯП" -> "технология1", "технология2", "технология3" -> проходишь собеседование -> Profit!!!
    Шаблон неверен!
    Рынок -> Спрос -> Задача -> технология -> алгоритм -> ЯП -> реализация -> Profit!!!
    JS, не тот, что jquery, а именно JS!
    Хотите быстро - начните с изучения создания анимации для "шапок" сайтов на CSS3.
    Ответ написан
    Комментировать
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

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

    Меньше всего технологий, пожалуй, это будет Ассемблер + C/C++, там одна основная технология - очень чёткое понимание всех принципов работы машины от А до Я. Но, на начальном этапе, без грамотного преподавателя, Ваше обучение может затянуться на годы. К тому же, с очень большой вероятностью у Вас не получиться отвертеться от других технологий, например, от баз данных. Хотя, есть конечно вариант устроится писать на чистом Си (или си-подобном языке), например, системный софт, допустим это будут программные виртуализаторы, но в этом случае Вам придётся знать не только сам язык, но и принципы работы целой кучи различной аппаратуры на самом низком уровне, например очень чётко понимать что такое сетевая карта, что такое пакет, что такое буфер памяти, что такое фрейм и так далее, вплоть до устройства ядра Linux/BSD/etc.

    Другой вариант Java - но... тут тоже не всё так сладко. Хотя нет, наверное, меньший стек из мне известных - это пожалуй, C#-разработчики, не редко 1 разработчик пишет в каком-то одном вполне конкретном ключе, без вёрстки и настроек серверов и прочих "прелестей" и даже без баз данных, иногда. Но у C# - довольно большой "внутренний стек" и вот так вот с наскока, взять и писать на C# - не получиться, т.к. C# - это не только язык, но и огромная библиотека классов и готовых решений, поверх которой он построен (на которую он "натянут").

    Так же, есть случаи, когда профессиональные PHP разработчики работают только с бэк-эндом, т.е. PHP + База данных. Но обычно в таких проектах объёмы БД исчисляются чуть ли не петабайтами, а обёъмы когда иногда достигают сотни мегабайт... за то, довольно "узкий стек".

    В целом, мне встречались вакансии, и довольно не редко, где требуется человек "без лишнего ума", который знал бы как на 1.5 CMS'ках "побыстрому запилить сайт" и натянуть и возможно подправить немного готовый шаблон. Зарплата и уровень развития в таких компаниях и на таких вакансия - соответствующие.

    И, пожалуй да, наверное самый просто вариант, это будет PHP + CMS "1с Битрикс". Это довольно популярная CMS, на довольно популярном языке, состоящая чуть менее чем полностью из "странно написанного кода" (мягко говоря), страшно тормозная, требующая специфических настроек сервера, и в идеале как минимум VPS, что бы сайт подавал признаки жизни. Но, не смотря на всё это - это довольно популярная в бизнес-сфере CMS (о причинах её популярности можно написать целую книжонку). То есть, учите PHP, учите 1с-Битрикс -> Профит, Вы битрикс-разработчик, знания всего остального в 95% случаев не обязательны.

    Ну и ещё пожалуй, можно рассмотреть вариант изучения самого 1с (1с Бухгалтерия например). Я как человек сам плотно столкнувшийся с этой сферой - могу сказать, что глобальных знаний от таких разработчиков не требуется, ну кроме основ экономики и бух. учёта. И работы, в т.ч. удалённой - у них хватает. Более того, даже язык программирования, с которым Вам придётся работать - русифицирован, во всех смыслах этого слова.
    Ответ написан
    12 комментариев
  • PHP фреймворк для начинающего разработчика?

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

    Для начинающего, с целью понять сущность MVC, "пощупать" некоторые аспекты фреймворка, такие например, как загрузка библиотек и пр. подобности, я бы порекомендовал Вам CodeIgniter. Отличная документация, довольно много людей, кто сможет Вам ответить на возникающие вопросы, есть документация на русском. А так же, минимальное количество "лишнего" из коробки, например, шаблонизаторов (которые Вы можете самостоятельно подключить, если очень хочется).

    После этого фреймворка, промежуточным, можно было бы считать Kohana, но, он что-то то "умирает", то снова "воскресает"... С документацией на него, по моему, всё так же плохо (читай "не очень хорошо") как и всегда... но, по нему есть несколько неплохих видео-уроков.

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

    Далее, в обязательном порядке будет идти Laravel - превосходная документация, примеры и фантастическое количество видео-уроков (если хорошо понимаете английский). Отличный фреймворк собранный на базе Symfony. Относится уже к "большим".

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

    P.S. Я понимаю, что Вы спрашивали "какой фреймворк учить первым?", а не какие они бывают вообще. Но, дабы предостеречь Вам от вопросов типа "какой фреймворк учить вторым?" или "почему Symfony в роли первого фреймворка так тяжело изучать?" и массы прочих подобных - озвучил одни из самых популярных фреймворков в мире веб-разработок в ракурсе PHP.
    Ответ написан
    1 комментарий
  • Почему крупные ресурсы не хешировали пароли?

    @Karmashkin
    возможный сценарий:
    говнокодим и пытаемся взлететь накапливая "технический долг" в виде забивания на безопасность, а когда площадка становится крупной, долг остается не погашеным.
    не успели, забыли, отложили, не
    выделили на это ресурсы и долг остался.
    Ответ написан
    Комментировать
  • Почему крупные ресурсы не хешировали пароли?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Потому что крупные площадки не сразу появились с навороченным бекэндом.
    А строились годами, а может и десятилетиями уже.

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

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

    Так же в некоторых протоколах/софтинах нужны plaintext пароли.
    Самый простой пример: авторизация на mail.ru с ящиком другого провайдера.
    Тут кроме как хранить в открытую вариантов нет. Тоже самое с другими подключаемыми друг к другу сборщиками почты.

    Ну и конечно что нельзя недооценивать человеческую глупость, не всегда разработчики думают/знают о безопасности.
    Ответ написан
    7 комментариев
  • Знания Junior php разработчика?

    @zzzmaikzzz
    Junior-web
    HTTP + TCP + IP + SQL + PSR-0, PSR-1 и PSR-2 + Библиотека PHP (SPL) + XDebug + Composer + PEAR + PDO + Безопасность + Хэширование паролей + Фильтрация данных + PHPUnit + Selenium + Кэширование + и т.д.
    Ответ написан
    3 комментария
  • Какой классический формат приема и обработки данных с формы?

    @Arik
    Надо сохранять в БД так как прислал пользователь, если его данные прошли валидаторы! Нельзя что-то менять, пользователь не это прислал, и такая попа будет чтоб вернуть ему то что он до этого прислал. Менять можно, например, пароль хранить в виде хэша или эл.почту в нижний регистре, можно поправить тип данных (POST всегда в виде строки, а вам надо целое число или булеан), если БД noSQL типа. htmlspecialchars актуален для html страниц, а если вам надо будет отправить данные мобильному приложению, что мобильное приложение будет делать с & l t ; и т.д.? Получается вам надо только писать валидаторы, чтоб в БД не было мусора и экранировать кавычки чтоб не было SQL-инъекций. А вот когда показываете, тогда уже надо думать что безопасно показывать, а что надо экранировать чтоб не было XSS-инъекций и т.д.
    Ответ написан
    Комментировать
  • Красивый вывод в python?

    @abcd0x00
    >>> import pprint
    >>> 
    >>> lst = [1, 2, 3, 4, 5, {'a': 'b', 'c': 'd', 'e': 'f'}]
    >>> 
    >>> pprint.pprint(lst, width=5)
    [1,
     2,
     3,
     4,
     5,
     {'a': 'b',
      'c': 'd',
      'e': 'f'}]
    >>>
    Ответ написан
    Комментировать
  • Какой классический формат приема и обработки данных с формы?

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

    2. в приступах паранойи, я иногда заворачиваю все в base64 перед сохранением куда-либо; структурированные данные - json_encode + base64_encode. избыточно ли это? наверное, да ))

    3. эмм.. а что бы вы хотели, чтобы происходило? ))
    Ответ написан
    3 комментария
  • Какой классический формат приема и обработки данных с формы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Проверка всех входных и выходных данных - только Regexp по "белому" списку.
    Иначе говоря - принимаем только ожидаемые значения.
    preg_match();
    Используем те же правила проверки (js+regex) на клиентской стороне сайта (в браузере) перед отправкой данных на сервер.

    2. Закрываем соединение с базой только тогда, когда оно уже более не нужно для текущего исполнения PHP-скрипта до конца его работы. обычно, соединение к базе закрывается перед началом формирования страницы по шаблону. Можно закрывать ещё точнее: после завершения работы последнего запроса из последнего модуля списка всех модулей, участвующих в работе с данными в базе.

    И на последок маленькая, но ОЧЕНЬ! полезная функция собственного производства:
    function validfilter($value,$regexp,$flags='usi') {
      if (preg_match('/'.$regexp.'/'.$flags, $value,$result) && $result[0]===$value) 
         return $value;  
      else return false;
    }
    Ответ написан
    Комментировать
  • Как использовать Gulp для мелких проектов?

    Нет, все модули можно установить глобально через флаг -g. Например: "npm install gulp-sass -g"
    А затем залинковать модуль в папку проекта таким образом: "npm link gulp-sass".
    Таким образом у вас будет папка node_modules со ссылками на глобально установленные пакеты.
    Ответ написан
    Комментировать
  • Как использовать Gulp для мелких проектов?

    werty1001
    @werty1001
    undefined
    Я просто создал одну gulp папку для фриланса, в gulpfile указываю название активного проекта и вся сборка осуществляется только для него, до сих пор не понимаю зачем каждый раз устанавливать одно и тоже, чтобы выполнять однотипные задачи.
    Ответ написан
    2 комментария
  • Ошибка кодировки в python3.5 при записи данных в csv?

    @Firik67
    Middle PHP Developer
    with open('books.csv', 'w', encoding='utf-8') as csvfile:
    Ответ написан
    2 комментария