• Как лучше организовать DnD древовидные категории на React?

    @RusTorg Автор вопроса
    Ответ написан
    Комментировать
  • Как увеличить скорость разработки и внимательность?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Скорость работы штука мутная и неоднозначная. Давно установлено как факт, что мозг может одновременно хранить в сознании 7+-2 объекта, т.е. от 5 до 9, в зависимости от кучи факторов. Все что свыше того, нужно как-то хитро организовать, иначе получится каша. Да и продуктивно напрягать мозг больше 4-5 часов в сутки в совокупности могут только продвинутые джедаи...

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

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

    В процессе простраивания архитектуры заодно всплывают все сопутствующие технологии, и возможно неоднократное пересматривание как модели так и архитектуры, т.к. это вещи взаимосвязанные.

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

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

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

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

    Джуну обычно сливают что-то, с одной стороны несрочное и не ключевое, с другой стороны на чем он может учиться. Ясен-прекрасен, что у джуна в голове всех этих хитросплетений нет и он носится как курица с писаной торбой со своим модулем/классом.

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

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

    Пол-года это очень мало, особенно если до того вообще разработкой не занимался. Для полноценного усвоения контекстов и выработки начального уровня мастерства необходимо набрать хотя бы пару-тройку тысяч часов яростного дебаггинга - ценнейший пласт знаний о том, как не надо делать. :) Тогда уже нутром будешь чуять, где могли затаиться баги, куда рыть и вообще. Я на заре своего пути, помнится, однажды часов 20 не мог понять, что недопоставил одну единственную запятую...

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

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

    То, что джун не шибко быстр - это нормально, до 70% времени джун должен штудировать доки, из оставшихся 30%, до 95% времени - это дебаггинг. :) Так-что на реальный дев остается не так много времени, 0.3*0.05...

    Понятно, что в идеале джун должен этим заниматься не только в рабочее, но и в свое свободное время. Когда я вгрызался в основы, я мог маньячить по 12-16 часов в сутки, без праздников, выходных и каникул. Благо обстоятельства позволяли...

    И, главное, терпение+усидчивость. Путь это нелегкий, не простой, учиться придется постоянно, и постоянно будут критиковать, что мог бы поточнее, побыстрее, побольше и подешевле.... :)
    Ответ написан
    Комментировать
  • Синхронный и асинхронный код, почему так называется?

    MarcusAurelius
    @MarcusAurelius
    автор Impress Application Server для Node.js
    А сам код синхронным не называется, это его по ошибке или для упрощения так называют. Синхронным и асинхронным называется только API ввода-вывода, т.е. операции, прерывающие исполнение кода и требующие от системы обратиться к внешнему устройству, работающему не синхронно с центральным процессором. Операции ввода-выдвода, каковые есть: работа с дисками, портами, контроллерами, периферийными устройствами, как клава, мыша, тачскрин, разные датчики, вебкамера, сетевые карты, блютузы и другие радиомодули, принтеры, видеокарты и прочее. Все они получают задание от программы, и исполняют его отдельно, своими мощностями. Потом внешние устройства присылают программе сигнал о статусе исполнения и, возможно, полученные данные. Программа все это время может ждать (если у нее синхронное API, т.е. блокирующее) или что-то делать (если асинхронное, т.е. не блокирующее). Если программа ждет, не переходит к выполнению следующего действия, то это синхронный ввод-вывод, потому, что осуществляется процесс синхронизации программы с внешним устройством. Внешне устройство посылает прерывание, которое обрабатывает операционная система и через несколько слоев драйверов оно попадает в программу, обычно в виде колбека или события. Если программа ждала, то вызов API не завершался, она все время слушала, когда придет событие о завершении операции ввода вывода, а получив его API отдает ответ и управление переходит к следующей команде, что и называется, синхронизацией с периферийным устройством. Если программа не ждала, то вызов API сразу завершается и не блокирует поток выполнения программ, это называется асинхронным API, потому, что процесс синхронизации не происходит явно, а ответы возвращаются через события.
    Ответ написан
    3 комментария
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

    p.s. возможно дополню...
    p.p.s. звездочкой отметил, на мой взгляд не самые необходимые для junior-собеседования вопросы.
    Ответ написан
    31 комментарий
  • Куда стремиться PHP программисту?

    opium
    @opium
    Просто люблю качественно работать
    вы же умный , пора бы уже самому понять, что вам надо.
    Ответ написан
    Комментировать
  • Что такое потоки в node.js?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Это такая штука, которая выдает (или принимает, или и то и другое) данные кусочками (chunk). Чтобы объяснить, зачем они нужны, нужно немного отвлечься и вспомнить, как работает nodejs.

    Преимущество nodejs состоит в том, что пока БД или ФС реагирует на команду, мы можем запустить другой коллбэк. За счет этого мы можем обработать много запросов какбэ параллельно, но с точки зрения программиста параллельности нет, потоков нету, race condition не возникает и башка у него об этом не болит. И у нас все быстро работает, пока ни одна функция не занимает процессор слишком надолго, пока она не работает слишком долго. А если она займет, то, в силу однопоточности, у нас все остальные запросы зависнут.

    Но иногда нам все-таки сделать большую работу — прочитать или записать большой файл, например. С помощью потоков мы дробим эту работу на кусочки, которые не занимают проц надолго. Это не всегда возможно, но в большом количестве случаев вполне себе работает.

    P.S. В данном ответе речь идет о stream (не путать с thread).
    Ответ написан
    5 комментариев
  • Как научиться делать сортировки любой сложности в JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Комментировать
  • Почему стремление к упорядочиванию приводит к большей энтропии и отнимает силы?

    @di23
    Периодически меня, как и вас, клинит на теме упорядочивания всего.

    Что я только не пробовал, что я только не читал и чего я только не делал. Иногда это было даже циклически, сначала бросался к одному методу, потом переходил на другой, потом на третий, а затем опять возвращался к первому. И так всегда, на протяжении 5 - 6 лет, точно уж и не помню.

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

    Если уйти из абстрактного мира, в реальный. Это означает что у вас будет куча различных приложений, помогающих вам в повседневных делах, не удивительно если у вас будет сразу несколько ТуДушек.... Сейчас посчитал сколько их у меня, оказалась 4 штуки. Причем все они выступают также и хранителями информации. А сколько разнообразных хранителей информаций я использую... уж лучше и не считать.
    Причем все это эффективно работает, нужная инфа находится крайне быстро, несмотря на внешний хаос. Все это потому что мой мозг врос в систему и стал неотъемлемой его частью. Как пароль, как ключ, как процессор обрабатывающий хаос и упорядочивающий его в уме.

    Вот собственно как это работает у меня. Надеюсь "метафизики" достаточно в моем посте и вы ею насладились. ))) Я старался. )
    Ответ написан
    Комментировать
  • Почему стремление к упорядочиванию приводит к большей энтропии и отнимает силы?

    opium
    @opium
    Просто люблю качественно работать
    какой то херней вы страдаете, пробовали просто делать?
    Ответ написан
    19 комментариев
  • Почему стремление к упорядочиванию приводит к большей энтропии и отнимает силы?

    AntiStream
    @AntiStream
    Потоковый программист
    Почему невозможно учесть все зависимости и придти к единому шаблону? Потому что не получилось найти и осмыслить идеальную формулу, которая бы ко всему подходила? Но это же не значит, что это невозможно. По мне так формула проста, это формула приёмника и источника информации, и надо просто понять, кто приёмник, а кто источник, и вовремя сделаться вторым. Почему создаются проблемы внутри системы? Как раз потому, что нет единства, а система стремится к хаосу. От чего получается, что такое заявление, что невозможно учесть все зависимости, идёт как раз от тех процессов, которые увеличивают энтропию в системе. Зачем же делать такие скороспелые и не обдуманные выводы.

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

    @balamut108
    Py
    Добрый день, Дмитрий. То что Вы занимаетесь целеполаганием само по себе замечательно и конечно приведёт к результатам. Что касается структурирования всего и вся, то конечно в этом нужно знать меру.
    В окружающем мире сплошная энтропия и всё замечательно работает и без человека, т.е. все природные экосистемы представляют из себя, по сути самоупорядочивающийся хаос. На мой взгляд, наиболее важным является фокус на цели (!) и рефлексия, а всё остальное нужно либо вообще не упорядочивать, либо упорядочивать по остаточному принципу, но при этом не забывать о целеполагании как основе стратегического планирования.
    Ответ написан
    Комментировать
  • Как поставить bitrix + virtualbox + windows10 64bit?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    А у вас ось убежала... В смысле вам VB пишет что нужно x64 систему, а стоит у вас, наверное, 32 битная. (или в биосе виртуализация не включена)
    Ответ написан
    1 комментарий
  • Существует ли краткое древовидное руководство по вёрстке?

    @ysaeredir
    Почитай книги по ООП, потом опять вернись к верстке. Перейди от легкого к тяжелому, а потом обратно. Сразу все поймешь в верстке, что и как.
    Ответ написан
    1 комментарий
  • Как "самоорганизоваться" во времени?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    >Мотивация с годами слабеет.
    Если вы ГОДАМИ занимаетесь проектом, который вам ничего не приносит, то тут не нужен психолог, чтобы понять что мотивация упадет.

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

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

    Mon11k1
    @Mon11k1
    Fron-end йода
    Я вот сейчас читаю книгу "18 минут", там про это и рассказывается, книга маленькая - много времени не займет.
    Много важных вещей в ней поднимается. Советую к прочтению, возможно вы найдете там ответ на свой вопрос.
    Ответ написан
    1 комментарий
  • Вирус chrome: не работают приложения + разлогинивается vk.com, как нейтрализовать?

    @386DX
    Недавно советовали
    bm.yandex.ru
    и антивирус(анитимылварь)
    antivirus.baidu.com/en

    Но вообще сотни их этих антивирусов. Если в браузере повреждены файлы, то переустановка. Вроде ничего нового в анитивирусах за последние N лет не появилось.
    Ответ написан
    Комментировать
  • Вирус chrome: не работают приложения + разлогинивается vk.com, как нейтрализовать?

    @Espleth
    Ну прогоните комп для начала всякими разными утилитами, если ничего не поможет, то наверное на соответствующие форумы с прилагаемой инфой о компе (не помню уж точно, что там нужно, логи что ли какие-то)
    Ответ написан
    Комментировать