• Как вы учите новое?

    verkhoturov
    @verkhoturov
    HTML-Верстальщик / Frontend Developer
    Придумываешь пет-проект, делаешь, тупишь, гуглишь как надо делать, снова делаешь, снова тупишь, гуглишь...
    Ответ написан
    2 комментария
  • Самописный проект: как узнать, его можно запустить на хостинге или же нужен VPS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    по каким признакам опытные программисты могут определить, что делать с этим проектом?
    Ищем то, что является точкой входа и отвечает за роутинг и погнали оттуда вглубь. Если проект самописный, то эффективным может оказаться пройти весь стек вызовов через XDebug - файлов, скорее всего, будет немного.

    Дополнительно стоит включить вывод всех ошибок и предупреждений - если много ворнингов, то это хороший индикатор низкого качества кода.
    Ответ написан
    Комментировать
  • Самописный проект: как узнать, его можно запустить на хостинге или же нужен VPS?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    При чём здесь Lavarel? При чём здесь MVC и структура папок?
    Какая-то каша, в том числе в понятиях и терминах.
    Берите и запускайте на любом хостинге. Хостинг - это и есть сервер.
    А VPS-это и есть хостинг.
    Но сначала надо отладить его локально на своей машине.
    VPS-хостинг, конечно, всегда лучше.
    Но обычно VPS на *nix-ах (Ubuntu, Debian, etc). Поэтому, если проект под Windows, то будут сложности, либо намного дороже выйдет хостинг.
    Ответ написан
    1 комментарий
  • Изучение фронтэнда/JS?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    и просьба не писать негативные комментарии, поскольку итак в упадке духа и гружусь на эту тему.

    Но все же, советую определиться с целью обучения программированию. Если чисто ради денег, а не ради интереса, то вероятнее всего, вы будете очередным "вайтишником". Если у вас уже есть работа, можно не спеша все осваивать без всяких менторов и курсов. Например прочитайте Чарльза Петцольда Код. Тайный язык информатики, это книга поможет понять, что вообще такое код.
    Курсы почти всегда бесполезны, они дадут вам ложное чувство понимания программирования. Самое важное в этой профессии, уметь учиться самому, иначе дальше не потяните. А время изучения основ, самый лучший момент также прокачивать навыки самообучения. Помните, не будет курсов для мидлов-сеньеров, и когда вы пройдете курсы для новичков, дальше вам все также будет непонятно, куда двигаться и как учить. Поэтому советую на легком этапе, пробовать сделать все самой.
    Через пол-года/год активного обучения, попробуйте устроится на работу в команду, это ускорит дальнейший процесс обучения.
    Ответ написан
    3 комментария
  • Что умеет выдающийся Frontend разработчик?

    @yayashitoya
    Я могу себе представить требования к backend, потому что backend сложнее. Там нужно учитывать...Там много всего можно перечислять. ...Много зрелых и объемных технологий, на изучение которых требуется много времени и сил.
    А вот требования к frontend разработчику высокого уровня мне представить сложно.


    И потому то мы и имеем тысячи простых по функционалу веб-сайтов, в которых браузер тупит на пустом месте?
    Ответ написан
    Комментировать
  • Что умеет выдающийся Frontend разработчик?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    > Я могу себе представить требования к backend, потому что backend сложнее.
    Нет

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

    > Там разного рода масштабирования, linux и sql.
    Во фронте много js, json, xml, CS, много зрелых технологий на изучение которых требуется много времении сил, много новых технологий.

    > А вот требования к frontend разработчику высокого уровня мне представить сложно. Тут один достаточно простой (по сравнению) ЯП, приходящие модные технологии вроде babel, webpack и TypeScript, которые еще сильнее упрощают работу и какой-нибудь фреймворк.
    А как же webassembly, html5, RMTP, и другое медиа? Флэш сейчас уступил место JS и HTML5, но это только расширяет возможности использования.

    > Есть особенности работы браузеров, но их не так много и они по большей части решаются тем же babel.
    По большей, но мы же говорим про выдающегося, который может например написать сам babel?

    > Фронтенд не масштабируется, не реплицируется.
    Так можно говорить, если переложить всю работу на бэкенд. А правильно - грамотно распределять что делает фронтенд, что делает бэкенд и оптимизировать передачу данных. Это оба специалиста должны сотрудничать.

    > В целом, если его очень хорошо протестировать, то разработчик уверен на 99.9%, что все работает на всех браузерах и на всех утройствах. Здесь не может быть ситуации, когда пришло слишком много пользователей или память на сервере закончилась.
    Ну как это не может? Вы знаете все устройства, где запустится ваше вебприложение? А если на смарттв? А если на нонейм планшете? А если это голосовой чат в веб-приложении на 50 человек?

    > Тут нет мониторинг систем.
    Зато есть понимание метрик, их сбора, и отправки на бэкенд или куда-то еще?

    Вдобавок фронтенд, в отличие от бэкенда, ОЧЕНЬ быстро прогрессировал за последние несколько лет. Настолько быстро, что хороших специалистов крайне сложно найти - они просто не успевают изучить все, что на них падает. Бэкенд постабильнее, там печатные книги успевают выйти в 10-м издании.
    Ответ написан
    Комментировать
  • Что умеет выдающийся Frontend разработчик?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    linux

    Ну, это и фрондендеру нужно часто знать.
    ЯП

    Я сомневаюсь, что он сейчас сильно проще питона или php, JS очень довольно быстро развивается. А если взять в расчет TypeScript, то тем более.
    В целом, если его очень хорошо протестировать, то разработчик уверен на 99.9%

    Совсем нет. Не получится протестировать на всех браузерах, на всех операционных системах и на всех устройствах с разным экраном, с разным способом ввода.
    то в случае с frontend все гораздо проще

    Ну вот просто вообще не правда. Я также могу сказать, что в бэке учить нечего, изучил язык, изучил laravel, а sql даже учить не надо, используй ORM. Справедливое высказывание?

    Теперь в общем. Во front-end много чего можно изучить
    1) Верстка. Хороший front-end'ер должен хорошо верстать, вопреки частому мнению, что этим должен заниматься верстальщик. А верстка это отдельная широкая тема.
    2) SVG, для многих интерактивных приложений, очень полезно использовать svg, а там куча своих особенностей, хаков и.т.д.
    3) Webgl - довольно сложная тема, не знаю, есть ли в бэке что-то аналогичное по сложности.
    4) Canvas - не просто знать, а уметь рисовать то, что желаешь.
    5) Фрейморки, а там тебе для каждого свое разветвление.
    6) Асинхронное программирование, которое для многих php-шников кажется непонятным.
    7) ООП, т.к. в JS завезли классы, да и TypeScript часто нужно использовать.
    8) Шаблоны проектирования - не только для бэкенда.
    9) Webpack+gulp - ну это было.

    Буду дополнять, если что-то еще в голову придет.
    Ответ написан
    6 комментариев
  • Как деплоить небольшие проекты?

    @Stqs
    senior software developer
    вопросы у вас философские, на каждый можно отвести часы обсуждения
    Полноценный CI/CD поднимать не вижу смысла ввиду размеров

    вы ж все равно собираетесь какие-то скрипты мутить и чото выдумывать,
    какая разница это будут крон скрипты на сервере или джоба в дженкинсе? по-скорости написания - одно и тоже будет. так что по-моему размер тут не имеет значение
    единственное что имеет значение - насколько явно у вас описан процесс(алгоритм) билда/разворачивания приложений
    с этой точки зрения мое видение примерно такое:

    1) git не есть инструмент для развертывания по, git лишь для версионирования кода
    и по-идее результатом вашей работы должен быть не код в гитхабе, а какой-то вменяемый артефакт, готовый к деплою (docker-image, pip пакет, npm пакет, deb пакет, jar, war, zip в крайнем случае, и тд и тп). Если производить артефакты то вопрос с тегами отпадет сам собой - у вас будет артефакт какой-то версии и все
    сервер не должен знать ни про какие гиты и ни про какие-то теги в нем
    Здесь я бы рекомендовал паковать все в докер-имеджи хотя бы только потому, что сервер в итоге не будет знать ничего о зависимостях приложения, нужных библиотеках, ниочем вообще, вам нужно установить только докер
    Огромное преимущество использование докера - в Dockerfile вы вынуждены волей/неволей описать точно и явно все шаги требуемые для установки приложения. И что самое замечательное - это все будет храниться в том же репозитории, под контролем гит - шикарно.
    Артефакты желательно хранить в каком-то артефактории,
    но если реально все просто - то можно хранить несколько последних версий прямо на сервере в какой-нибудь папочке

    2) как только вы получили артефакт - его можно деплоить
    неплохо было б знать особенности вашего проекта, но грубо говоря допустим что достаточно его зааплоадить на сервер, положить в нужное место
    опять же с этим дженкинс справится на ура и займет у вас это все дело 10 минут . Если вы опишете логику в Jenkinsfile вы выиграете еще раз потому что процесс развертывания(алгоритм) будет описан опять же ЯВНО. И будет тоже под контролем гита. (Jenkins должен знать только в каком репозитарии и в каком месте ему искать Jenkinsfile)
    Если же вы будете крутить какой-то спрятанный cron скрипт на сервере - о нем никому ничего не будет известно. Поверьте уже через короткое время все это дело начнет усложнятся, что-то забудется, что-то измениться и это все вместе больно ударит вас по яйцам.

    В чем еще преимущество такого подхода: если вам нужно сделать roll-back на предыдущую версию вам не нужно собирать проект заново выкачивая все с гита, ведь у вас есть предыдущие артефакты, ролбек в таком случае вообще не проблема - просто указываем предыдущую версию артефакта и деплоим еще раз и все

    3) Env Variables
    когда приложение стартует - считывает все что ему нужно из переменных окружения
    деплой джоба может каждый раз эти переменные устанавливать перед тем как деплоить - это было бы тоже круто потому что вы сделали бы это знание так же явным

    Итого имеем
    - логика сборки проекта описана в Dockerfile и находится под гитом
    - логика деплоя находится в Jenkinsfile и находится под гитом, и что самое главное является кодом (Jenkinsfile пишем на груви, для простых вещей вам понадобиться 30 минут изучения и все)
    - на сервере мы ничего не устанавливали совершенно кроме самого докера
    - мы храним несколько версий нашего приложения на всякий случай и можем быстро откатиться не прибегая к гиту вообще
    - сервер не знает ничего о гитах
    - на сервере нет НИКАКОЙ дополнительной логики по разворачиванию вашего приложения
    - имея все это очень легко добавлять другие сервера для деплоя - что нам нужно - грубо говоря указать другой айпи и набор env variables к нему ( если они конечно отличаются)
    giphy.gif
    Ответ написан
    5 комментариев
  • Понятный ли backend Javascript?

    tsepen
    @tsepen
    Frontend developer
    Плохо, 8000 строк кода в 1 файле без комментариев - как тут что то можно оценить?)
    Ответ написан
    3 комментария
  • Как можно ускорить работу с большим количеством данных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) замер времени запроса
    2) замер времени рисования графиков после запроса
    3) Настройка slow query log
    4) Если дело действительно в запросах, а не скажем в модуле построения графиков - курить explain
    5) Расставить индексы на поля которые БД выбирает перебором "в лоб" группами по используемым полям
    6) если в коде(маловероятно)- тут уже сокращать и оптимизировать циклы
    Ответ написан
    Комментировать
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - ООП, иначе нет смысла заморачиваться с крупным проектом, да и функциональный подход сегодня вообще в проектах больше чем "свой микроблог" никто не использует, это не рационально.
    Так же откройте для себя MVC и возьмите какой-то фреймворк в котором все это уже нормально реализовано, в итоге время потраченное на прочтение документации и написание контроллеров и моделей к проекту будет в разы меньше чем вы потратите на свое кошмарное велосипедостроение. Кроме того, построенный по вашим наброскам Титаник и показать то кому-либо будет стыдно, а знания любого современного фреймворка напротив - будет большим плюсом.
    Удалив модуль и БД мы повлияем на работу других модулей. Изменив структуру БД мы повлияем на работу других модулей.
    SOLID, DRY, KISS...PSR4 и много других страшных аббривиатур вам помогут )
    Ответ написан
    8 комментариев
  • Как лучше организовать код?

    amark
    @amark
    rush less, feel more
    У меня сложилось впечатление, что вы изобрели велосипед.
    В общем-то в вашем тексте много разумных находок и выводов.
    Однако может вам имеет смысл выбрать какой-то фреймворк? Yii, Laravel, Symfony и т.п.
    Вы автоматом получите и структуру, и порядок работы, и разделение и кучу всего, что упростило бы вам жизнь. М?
    Ответ написан
    7 комментариев
  • Легаси-монстр. Как побеждаете?

    @RidgeA
    Немного банальностей:
    1. Бизнес не даст ресурсов на переписывание проекта с 0: время и большие риски
    2. Бизнесу как правило все-равно какое говно там крутится, лишь бы деньги приносило.
    3. Если более-менее адекватное руководство - нужно донести идею постепенного рефакторинга кода по мере необходимости в процессе фикса багов и разработки новых фич и тем самым аргументировать что на разработку новых фич/фикс багов нужно больше времени.

    Как я бы делал:
    1. Тесты на существующие функции (если возможно, видел методы в контроллерах с мешаниной вызовов методов моделей, созданием DTO и сохранением их через репозиторий, прямых http-запросов и запросов в бд на 1000+ строк, покрыть такое тестами - невозможно)
    2. Составить план рефакторинга, где отметить что и где надо сделать, коротко, в основном для команды разработчиков.
    3. Постепенно рефакторить старый код по мере взаимодействия с ним.
    4. Новый код - писать сразу правильно, для взаимодействия со старым кодом где нет возможности/времени его переделать - делать какие-то адаптеры, что бы не распространять токсичный код.
    5. Как оперативная мера защиты от SQL иньекций можно поставить что-то вроде этого https://github.com/nbs-system/naxsi
    6. Мониторинг кода, который не используется - pinba.org , по мере обнаружения такого кода - удалять безвозвратно (в крайнем случае есть VCS, я надеюсь). Начать с более высокоуровнего кода - контроллеры, напримерю. Плюс IDE в этом могут помочь и grep.
    7. Как вариант - новые фичи можно пилить в отдельном проекте (v2), крутить оба и постепенно переходить на новый, со временем старый (v1) выкинуть (и начать делать новый - v3 :-) )
    Ответ написан
    3 комментария
  • Что такое циклы в PHP?

    Stalker_RED
    @Stalker_RED
    Много букв не обещаю, а камень вот он: вы пытаетесь "учить php", а стоило бы учить что-то вроде "основ информатики" или "компютерной грамотности", или может даже логики. По идее это в школе учат.

    Вообще цикл, это когда есть набор каких-то похожих штук, и их перебирают по очереди.

    Пройти по подъезду и позвонить в дверь всем жильцам. Пройтись по ступенькам, перепрыгивая через одну. Пролистать книгу, страница за страницей. Или пролистать страницы в обратном порядке. Пролистать со средины в начало, причем только четные.

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

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

    https://www.youtube.com/watch?v=e8ZrDMsRGy8&index=...
    https://youtu.be/vZYEFAfk7bA
    https://www.youtube.com/watch?v=9DGZP750CX4
    Ответ написан
    4 комментария
  • Почему не все элементы удаляются?

    Fragster
    @Fragster
    помогло? отметь решением!
    Стандартная ошибка обхода массива с одновременной модификацией.
    Используйте другой подход:

    С конца:
    var divs = document.getElementsByClassName('test');
        var i;
        for (i = divs.length-1; i >=0; i--) {
          divs[i].remove();
        }

    или в цикле while
    var divs = document.getElementsByClassName('test');
        while (divs.length) {
          divs[0].remove();
        }
    Ответ написан
    Комментировать
  • Обучение php, обучение программированию Битрикс?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вы хотите какую-то хрень. Я понимаю, если бы у вас была какая-то экзотика, по которой специалистов человек 5 на город миллионник. Но битрикс - это не из этой оперы.

    Если вы рассчитываете нанять вчерашнего студента после курсов - не удивляйтесь частым падениям и постоянному удоророжанию поддержки.
    Ответ написан
    1 комментарий
  • Обучение php, обучение программированию Битрикс?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    обучить сотрудника и поставить его на должность программиста 1с битрикс

    Вы погубите человека.
    Разработчик Битрикса, без знаний языков программирования, php например - не будет являться таковым.

    Практика чтения кастомного (да что там кастомного, даже ядра) кода программистов битрикса говорит об обратном.
    Поэтому в нашем понимании, сначала нужно изучить как минимум подобный курс geekbrains

    Вы погубите человека.
    В сети много курсов по php за 6-8 недель.

    Не хватит. Если нет опыта в разработке, это хватит только на базовые вещи. Никаких методологий, понимания логики, хороших практик. Да даже банально язык за это время не изучить, если нет за плечами подобного опыта.
    С курсов на выходе вы получите человека, который будет считать, что якобы он все понимает, а на деле будет беда.
    Не ждите от новичка адекватного результата в первый год.
    Ответ написан
    1 комментарий
  • Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Самая частая причина - "бикоз ай кэн".

    Разбирался как-то с одной библиотекой аутентификации на базе ларавель (не сентинель, там отдельный ужас). Господи, автор навернул 6 слоёв абстракции ради одной операции `login()`. ШЕСТЬ, я не шучу. Я мозг сломал, пытаясь это понять.

    Написал автору, да. В ответ получил "Там все просто, чего тебе непонятно? (далее были контрпродуктивные оскорбления)"
    Ответ написан
    4 комментария
  • Что изучать для Web-а?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Oh, not this shit again...

    С умения искать, без этого скила у вас в любом случае ничего не получится.

    С чего начать web разработчику ?
    С чего начать в создании Web-студии?
    Этапы обучения программирования (Web/Mobile)?
    Как студенту начать работать в web-сфере?
    Python и web-разработка, с чего начать?
    Можно ли начать изучение Ruby c работы над Web-приложение для ведения данных о ПК (инвентаризация)?
    ASP.NET или PHP. Что начать учить?
    Как и где лучше всего начать изучать программирование?
    WEB-программирование. Что выбрать и с чего начать?
    С чего начать разработку веб-приложения?
    Какими знаниями должен владеть Web-программист?
    С изучения чего начать разработку приложения для просмотра расписаний автобусов с сайта под Android?
    Какие новые технологии начать изучать программисту php?
    Как правильно вести разработку web-проектов?
    Кто может помочь освоить web-разработку c помощью php, mysql?
    С чего лучше начать карьеру программиста?
    Стоит ли бросать работу и начать карьеру Front-end разработчика?
    В чем польза изучения PHP сегодня?
    Программирование. Как и где учиться и что делать?
    Как создать приложение?
    Как правильно изучать PHP?
    Начало пути веб-программиста: с чего начать?
    Реализация проекта в вебе и автоматизация тестирования, с чего начать?
    С чего начать новичку в web: fornt-end vs back-end?
    C чего начать фриланс?
    Как правильно начать изучение django?
    Изучение Laravel, с чего начать?
    Из математика в front-end разработчика. С чего начать?
    С какой книги лучше начать изучать HTML и CSS?
    Как от WEB перейти к разработке приложений?
    С чего начать разработку игр для WEB?
    Введение в java web разработку?
    Java — начало — учебники, литература, статьи, сообщества, сайты
    Web — быть или не быть?
    С чего начинать проектирование web-приложение на Ruby on Rails?
    С чего начать учить python?
    Практикум в web-программировании. С чего начать? И с чего начинали вы?
    С чего начать javascript «enterprise experience»?
    С какой книги по AngularJS начать изучение?
    С какого языка начать изучать программирование?
    Как стать хорошим web разработчиком?
    Ответ написан
    2 комментария
  • Как разместиться правильно на github?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. вместо /v1.0/ используйте теги гита
    2. test | tests | ... - обычно это каталог для авто тестов
    3. build | release | ... - это каталоги для собранных (релизных) файлов, тот же jquery.min.js например
    4. external | vendor | ... - каталоги с внешними зависимостями текущего проекта
    5. src | lib | ... - сам код проекта
    6. bin - каталог с исполняемыми файлами для проекта
    7. var | tmp | ... - каталог для временных файлов
    8. Makefile - настройка для консольной утилиты make
    9. bower.json - зависимости bower
    10. package.json - зависимости npm
    ...

    Видите ли, сейчас одно-файловые скрипты особо никто не пишет (не берем в расчет тривиальные на полторы строки).
    Ответ написан
    Комментировать