• Как создать парсер AST допускающий синтаксические ошибки?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Для начала как вооще строятся AST (абстрактное синтаксическое дерево) деревья? Что почитать?

    Книгу дракона.

    Как создать парсер для языка, например SQL, который генерирует AST дерево и прощает синтаксические ошибки?

    Предусмотреть в грамматике правила описывающие синтаксические ошибки и восстановление после них. В bison, например, для этого есть токен "error".
    Ответ написан
    Комментировать
  • Почему github, а не gitlab?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если уж сравнивать разные сервисы, то стоит расставить их в порядке популярности:

    1. GitHub
    2. BitBucket
    3. GitLab

    Немного подробнее:

    1. GitHub

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

    - в бесплатном акке нет приватных репо
    - аккаунт организации создается из аккаунта юзера, не совсем удобное управление

    Обновление от мая 2020: бесплатные приватные репозитории давно есть, управление командами/организациями сильно улучшилось + появился еще целый вагон фич.

    2. BitBucket

    + неограниченное количество приватных репо бесплатно
    + аккаунт компании - виртуальный, легче и удобнее управлять
    + куча сторонних интеграций тоже, но меньше чем GitHub

    + / - интеграция с продуктами Atlassian (например, Jira) - кому-то огромный плюс, кому-то минус. Битбакет популярен на западе у энтерпрайзов

    3. GitLab

    + бесплатные приватные репо
    + self-hosted версия (но это уже из другой оперы)

    - самый молодой, совсем юный, есть баги, функциональность еще бедная и не выпилена
    - мало внешних интеграций

    Обновление от мая 2020: Функциональность GitLab давно уже нельзя назвать бедной - в некоторых аспектах они и GitHub превзошли.
    Ответ написан
    2 комментария
  • Почему github, а не gitlab?

    slimus
    @slimus
    Symfony, Golang
    gitlab появился много позже чем github
    Ответ написан
    Комментировать
  • Почему github, а не gitlab?

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

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

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

    В четвёртых, на гитхабе есть целая куча разных мелких удобных вещей, которых нет на его аналогах. В него вкладывают много денег, его активно развивают, поэтому в нём больше всяких "фич".
    Ответ написан
    1 комментарий
  • В чем смысл использовать Jquery для ajax при использовании React?

    @stasov1
    Это скорее всего очень легаси код, не самых лучших разработчиков, вобще связка jquery+react... Используйте fetch или axios.
    Ответ написан
    Комментировать
  • Chrome devtools. Была возможность запустить отладчик с точки входа в функцию. Не могу найти или отключено?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Нашёл в чём прикол:
    Эта особенность не работает, если я правлю код, который не загружен как .js, а внедрён на страницу .html. Если файл с кодом в отдельном .js-файле, то можно вносить изменения на лету и отладчик отматывается назад.

    c827c2dd8b114922927c8d727b96a502.gif

    Настроение улучшилось!
    Ответ написан
    1 комментарий
  • Почему ember, angular и react сравнивают в скорости?

    Jump
    @Jump
    Системный администратор со стажем.
    Подскажите, пожалуйста, почему их всё время сравнивают в скорости?
    Потому что людям нравится что-нибудь сравнивать.
    Ну не могут они без этого.
    Некоторые люди сравнивают тупое с острым, но некоторые на этом не останавливаются, и начинают сравнивать теплое с мягким, синее с высоким, и.т.п.

    Например, напишу одну страницу с 2-3 функциями на angular и тоже самое на ember, как мне увидеть/измерить скорость?
    Вот возьмите к примеру спорткар от мерседесса, и гусеничный трактор.
    Как вы можете измерить их скорость? Понять кто быстрее?
    Достаточно просто устроить тестовый заезд. Поставьте их на трассу и посмотрите кто придет первым.
    А уж какую трассу использовать - ровную асфальтовую, или по полю с расксшей грязью по колено это уж вам решать.
    Ответ написан
    Комментировать
  • Как узнать свой уровень в кодинге?

    @kirill-93
    Это все в пределах конкретной компании ведь. Тимлид в конторке по разработке сайтов != тимлид большой международной компании. В целом примерно так:
    Джуниор не может сам полностью выполнять таски, ему нужны советы и контроль.
    Мидл может сам выполнять таски без контроля и советов, кроме исключительных случаев.
    Сеньор - тот, на ком все держится и к кому все обращаются.
    Тимлид может быть мидлом или даже джуном в другой компании.
    Что конкретно нужно знать вам никто не скажет, да и всего знать невозможно. Если речь идет именно о каких-то технологиях, то это не важно, важно уметь находить решения, а не знать их наизусть.
    И еще, лучше быть крутым джуниором/мидлом, чем хреновым тимлидом. Очень смешно смотреть, как человек с двумя годами опыта гордо рассказывает всем, что он тимлид. Этим любят пользоваться хитрые начальники, типа: "Давай ка мы тебя тимлидом называть будем, а ты поработай сверхурочно и по выходным, ты ведь теперь сеньор-помидор!", а молодежь ведется.
    Ответ написан
    3 комментария
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

    Я учился на конкретных задачах. Обучение практически всегда начиналось с состояния хочу сделать вот это (четко осознаваемый конечный результат), но вообще понятия не имею как это делать, и даже с какой стороны подойти и за что хвататься...

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

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

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

    Далее из модулей, как из кубиков лего пытаешься собрать функциональные блоки. Тут важно понимать, что чем более автономные модули и блоки у тебя получаются, тем лучше, особенно для целей тестирования. Если ты забиваешь болт на тестирование, то тебе нечего делать в разработке.

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

    С этим не рождаются, это выкристаллизовывается за сотни и тысячи часов жесткого баттхерта от неспособности найти, где ты забыл поставить запятую... Когда код из 10 строк прочитан сотни раз вдоль, поперек и наискосок...

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

    Обрати внимание, самое главное качество во всем этом многабукафф - упорство на грани фантастики. Любой, кто не дойдет до конца, не треснет себя по лбу в соты раз с воплем, так вот же она где, эта запятая, пропущена - сломается в самый неподходящий момент на боевом проекте...

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

    В любом случае я за критерий истины держу платежеспособный спрос.
    Ответ написан
    3 комментария
  • Как устроиться на работу любой ценой?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Нужно уметь делать то, что необходимо в данный момент работодателю.
    Касательно IT: определяете направление трудоустройства и набираетесь опыта, практики и знаний, используя свободное время, мозг и интернет.
    Ответ написан
  • Как развиваться начинающему web-разработчику?

    thecoding
    @thecoding
    Full-stack Dev
    Я бы вам первоначально посоветовал изучать не стеки , а проектирование архитектуры высоконагруженных проектов,проектов с сильной бизнес логикой.
    Почитайте и посмотрите лекции Олега Бунина (HighLoad++)
    Изучите MVC(O-OP)
    GIT (обязательно)
    Unix (Linux)
    Если у вас есть общие знания и какая то практика разработки на PHP , то начните с Yii 2, в Symphony и Laravel пока не лезьте.
    Потом вливаетесь в какой нибудь OpenSource Project.
    Дальше все само собой пойдет.
    Или возьмите какой нибудь более менее интересный репозиторий на GitHub и попробуйте запилить что то свое, только ручками код пишите, смотрите архитектуру и вникайте.
    А интернет магазин по продаже трусов для соседки Нины(условно) можно и на OpenCart поднять)))Один хрен не взлетит до Ulmart.
    Ответ написан
    3 комментария
  • Лучшие книги для изучения JavaScript в области разработки интерфейсов (Frontend)?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Для чего составлять такую подборку? Вы просто перечислили практически все книги на русском по JS. При чем однотипные.
    Большинство из них описывают одно и тоже. Я прочитал почти все из этого списка. По опыту могу сказать, что читать всю подборку не нужно.
    Посоветовал бы прочитать книгу Ильи Кантора и книгу "Javascript для профессиональных веб-разработчиков", автор Николас Закас вроде.(Вместо второй можно прочитать Фленагана. Подробное руководство., но Заказ мне больше нравится, по моему мнению гораздо лучше объясняются многие вещи). Две эти книги, достаточно объемные и информативные, всю основу прекрасно преподносят.
    Также посоветовал бы книгу по оптимизации производительности, автор также Николас Закас и любую книгу по регулярным выражениям, но это уже после некоторой практики. А также книгу "Веб-приложения на JavaScript". Сам ее только вот начну читать, но по содержанию и отзывам достаточно хорошая.

    Достаточно будет чтобы довольно хорошо освоиться в языке.
    Не нужно читать однотипные книги. С 3 по 6 включительно пункты не стоит читать. Только зря потратите время.

    ООП объясняется в первых двух книгах которые я упомянул. Также книга про паттерны - largescalejs.ru/.

    Но главное не просто читать а повторять все примеры и выполнять все задания, попутно придумывания задания для себя самому. Чем больше практики, тем лучше будет откладываться информация в голове и будет намного лучшее понимание что да как.
    Я читать некоторые книги по несколько раз, потому что не сильно парился сначала о практике, просто читал, выполнял некоторые задания, по ходу было понятно, но через главу, уже все забывалось... Поэтому практикуйте, практикуйте и еще раз практикуйте.
    Удачи в обучении!
    Ответ написан
    Комментировать
  • Как подготовиться к закону Яровой?

    @nirvimel
    1. Купите недорогой VPS (от $15/год, можно даже дешевле) и поднимите на нем личный VPN. В Сети есть куча подробных руководств как это делается. Только не надо говорить, что у вас нет на это денег, интернетом вы же не бесплатно пользуетесь. Просто примите это как небольшую дополнительную плату за интернет за ваш спокойный сон.
    2. Работая через VPN (обязательно), заведите себе новый почтовый ящик на зарубежном сервере у компании, у которой нет никакого бизнеса и любых коммерческих интересов в РФ. Пусть это будет не мажорный гигант индустрии, а скромная компания, малоизвестная в РФ. Главное - это наличие SSL в веб-интерфейсе и в IMAP, в остальном почта есть почта, она просто работает, и этого достаточно.
    3. Работая через VPN, заведите себе новый аккаунт в vk facebook и/или google (если вы неспособны полностью отказаться от использования социалок). При регистрации указывайте место проживания подальше от РФ. Учитывайте, что все гиганты индустрии, имеющие большой бизнес в РФ, полностью сотрудничает с ГБ, но аккаунты нерезидентов, зарегистрированные и посещаемые с зарубежных IP, они не станут сливать по умолчанию (но по первому запросу сольют мгновенно). Так что забудьте про любые приваты в социалках, ведите все общение так, как будто все это читает весь ваш квартал и все те, кому бы вам меньше всего хотелось это показывать. Для приватного общения пользуйтесь только безопасной почтой (пункт 2) и защищенными чатами, на telegram jabber на зарубежных серверах. Все это касается только тех, кто не может окончательно завязать с пагубной зависимостью от соц.сетей. Очевидно, наиболее безопасным (и полезным для здоровья) вариантом является полный отказ от социалок.
    4. Не вбрасывайте в старые ящики и соц.аккаунты адреса и ссылки на новые чистые, не указывайте новые адреса в любых исходящих и старайтесь, чтобы они не попали во входящие. Помните, что в любой социалке и любом веб-интерфейсе почты (сотрудничающей) кнопка "удалить" скрывает удаляемое только от вас самих и не более того.
    5. (Самый неприятный пункт) Забудьте про vk, mail.ru и российские gmail и facebook. - КАК? - Так! Я понимаю, что это не легко, что они давно стали частью вашей жизни. Но это придется сделать! Поговорите сами с собой, спросите себя что для вас важнее: ваша личная безопасность, спокойствие и крепкий сон или старые привычки, которыми вы опутаны, и которые не хотят отпускать вас? Учтите, что продолжая пользоваться местными социалками (и сотрудничающими иностранными), вы продолжаете каждый день генерировать на себя тонны компромата, который может обернуться против вас в самый неожиданный момент самым неприятным образом. Проявляя активность в своих старых аккаунтах, вы не даете им "протухнуть" и не даете даже формального повода добрым компаниям снести их через пол года, после истечения отведенного законом срока хранения (как известно, vk не ограничивается минимальным сроком хранения, а хранит все метаданные и текст практически вечно за исключением видео/аудио).
    Ответ написан
    26 комментариев
  • Как сделать подобное наведение?

    Ответ написан
    Комментировать
  • Почему цикл for работает так?

    abyrkov
    @abyrkov
    JavaScripter
    Все очень просто for это
    for(инициализация; проверка; изменение) действие;
    Так вот, он работает так -
    1. Инициализация
    2. Проверка
      Если проверка - false - закончить цикл
      Иначе - продолжить
    3. Действие
    4. Изменение - далее опять на 2

    После 4того раза мы прибавляем к i 1. Ясен пень, она становится 5. После чего проверка нам дает false и цикл прекращается. Но 5-то никуда не делась?

    Если вы все-равно ничего не поняли, объясню проще.
    Чтобы цикл прекратился проверка должна вернуть false, верно? Т.к. 4 удовлетворяет она будет напечатана в цикле , улавливаете? 4++ - это уже 5. А 5 < 5 возвратит false. Если она вернется в 4 - то цикл просто не сможет закончится... то она должна снаружи не удовлетворять проверку.

    PS Странно, что у вас он вообще работает - область видимости i - только в цикле.
    Ответ написан
    1 комментарий
  • Какие есть интересные блоги современных JavaScript ниндзя?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Блоги не надо мониторить, надо подписаться на пачку дайджестов, и там вы найдете ссылочки на почти все достойные статьи, включая менее известных (но не менее крутых) товарищей.
    Получать 5-10 писем с кучей ссылок в неделю намного проще и эффективнее, нежели чем чекать 10+ блогов, где апдейты бывают раз в 1-6 месяцев.
    Ответ написан
    3 комментария
  • Как эффективно работать целый день?

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