ColorHunt.
Если не можете придумать сочетания цветов для своих проектов, то хочу порекомендовать это хранилище крутых сочетаний различных цветов. Можно использовать для своих pet проектов, так как надо уметь еще и подать свои навыки, ведь без хорошего UI не будет полноценного проекта
Раньше использовал палитру безопасных цветов, но там не было удобных сочетаний и все приходилось подбирать самому. В добавок хочу посоветовать свою подборку 4 сочетаний цветов
Если не можете придумать сочетания цветов для своих проектов, то хочу порекомендовать это хранилище крутых сочетаний различных цветов. Можно использовать для своих pet проектов, так как надо уметь еще и подать свои навыки, ведь без хорошего UI не будет полноценного проекта
Раньше использовал палитру безопасных цветов, но там не было удобных сочетаний и все приходилось подбирать самому. В добавок хочу посоветовать свою подборку 4 сочетаний цветов
Опять этот реакт.
В последнее время начал активно углубляться в реакт, это моя третья попытка и надеюсь последняя. Первая попытка была, когда я ещё не выбрал направления и пытался выучить все и сразу, но банальные знания js мне не позволили это сделать, недавно я снова решил изучать реакт, но потом у меня были проблемы с одним пакетом и я на него забил и продолжал верстать
Сейчас я уже достаточно крепко ориентируюсь в js и его функционала мне начинает не хватать, у меня была мечта — сделать свой чат, надеюсь с третий попытки я это сделаю, но сначала надо освоить webpack, ведь писать на чистом css мне как-то надоело:)
Ещё сейчас осваиваю redux и по сути это всего пара концепций, которые позволяют удобно хранить состояние приложения и не толпиться все в одном месте, обязательно напишу пост о нем, а пока можете зайти в чат
В последнее время начал активно углубляться в реакт, это моя третья попытка и надеюсь последняя. Первая попытка была, когда я ещё не выбрал направления и пытался выучить все и сразу, но банальные знания js мне не позволили это сделать, недавно я снова решил изучать реакт, но потом у меня были проблемы с одним пакетом и я на него забил и продолжал верстать
Сейчас я уже достаточно крепко ориентируюсь в js и его функционала мне начинает не хватать, у меня была мечта — сделать свой чат, надеюсь с третий попытки я это сделаю, но сначала надо освоить webpack, ведь писать на чистом css мне как-то надоело:)
Ещё сейчас осваиваю redux и по сути это всего пара концепций, которые позволяют удобно хранить состояние приложения и не толпиться все в одном месте, обязательно напишу пост о нем, а пока можете зайти в чат
Redux.
Есть такое понятие, как flux-архитектура, которая гласит, что UI вторичен по отношению к state.
Поэтому когда мы пишем приложение нам нужно организовать стейт-менеджмент, чтобы изменять состояние приложения и redux на данный момент является самым популярным решением
State — это некая истина и мы не можем изменить UI, не изменив state, такова концепция flux, даже если мы вводим в форму данные они не должны отрисовывается, пока не измениться сам state
Есть ещё много библиотек, для управления состоянием, например: MobX, ещё в чате писали про reatom ну и много других, у всех есть как плюсы, так и недостатки, поэтому лучше хорошо знать одну, чтобы быстрее перейти, ибо проблемы одни и те же, а решений много и все правильные. И каждый в праве изучать то, что ему нравится
Есть такое понятие, как flux-архитектура, которая гласит, что UI вторичен по отношению к state.
Поэтому когда мы пишем приложение нам нужно организовать стейт-менеджмент, чтобы изменять состояние приложения и redux на данный момент является самым популярным решением
State — это некая истина и мы не можем изменить UI, не изменив state, такова концепция flux, даже если мы вводим в форму данные они не должны отрисовывается, пока не измениться сам state
Есть ещё много библиотек, для управления состоянием, например: MobX, ещё в чате писали про reatom ну и много других, у всех есть как плюсы, так и недостатки, поэтому лучше хорошо знать одну, чтобы быстрее перейти, ибо проблемы одни и те же, а решений много и все правильные. И каждый в праве изучать то, что ему нравится
Резюме.
В первую очередь нужно писать от себя, с заботой о читателе, пусть там уже будет вся нужная информация о вас, которая может понадобиться работодателю, указывайте все ваши соц сети и контакты, для того же удобства — я мог бы этого не писать, но много людей отсылают просто шаблонное резюме, в котором просто поменяли навыки и контакты, если вы junior, то обязательно стоит указать опыт работы, даже если он маленький, будь то работа на фрилансе или свои pet проекты. Отличным плюсом будет вклад в openSource проекты. Ну и конечно крепкое портфолио, которое демонстрирует ваши навыки
Так же не забудьте указать ваш GitHub, чаще делайте коммиты и всегда будьте активны, так вы показываете свою способность к долговременной работе. Если у вас есть сертификаты, то можете смело их прикреплять к резюме, будет плюсом если вы пишите статьи, так как способность объяснять сложное понятным языком будет очень кстати, так как рано или поздно придётся обучать других, менее опытных программистов
Я сам хотел бы писать статьи в том же хабре, надеюсь в скором времени моя мечта исполнится, а пока я продолжаю изучать реакт и пилить свою соц. сеть, ещё хотелось бы набраться опыта в компании, чтобы прийти на фриланс уже более опытным и брать крупные заказы
В первую очередь нужно писать от себя, с заботой о читателе, пусть там уже будет вся нужная информация о вас, которая может понадобиться работодателю, указывайте все ваши соц сети и контакты, для того же удобства — я мог бы этого не писать, но много людей отсылают просто шаблонное резюме, в котором просто поменяли навыки и контакты, если вы junior, то обязательно стоит указать опыт работы, даже если он маленький, будь то работа на фрилансе или свои pet проекты. Отличным плюсом будет вклад в openSource проекты. Ну и конечно крепкое портфолио, которое демонстрирует ваши навыки
Так же не забудьте указать ваш GitHub, чаще делайте коммиты и всегда будьте активны, так вы показываете свою способность к долговременной работе. Если у вас есть сертификаты, то можете смело их прикреплять к резюме, будет плюсом если вы пишите статьи, так как способность объяснять сложное понятным языком будет очень кстати, так как рано или поздно придётся обучать других, менее опытных программистов
Я сам хотел бы писать статьи в том же хабре, надеюсь в скором времени моя мечта исполнится, а пока я продолжаю изучать реакт и пилить свою соц. сеть, ещё хотелось бы набраться опыта в компании, чтобы прийти на фриланс уже более опытным и брать крупные заказы
Книги.
Это отличный источник информации, но не каждый может прочесть книгу до конца, да и пока автор напишет,оформит и напечатает, пройдёт уж слишком много времени, хотя в наше время печать книги стало распространённым явлением и написать книгу может любой желающий, но все равно это занимает некоторое время, а курсы на их месте выглядят более перспективными
Тогда можно вообще не читать книги? — спросите вы, и я вам отвечу: «Конечно же нет!» Все преподаватели на курсах получали информацию от своих менторов, а те, в свою очередь, учились по книгам, поэтому новичкам так сложно понять, что говорят на курсах, ведь это получается поломанный телефон: ментор объяснил, но его словарный запас был мельче, чем у автора книги, ученик из-за этого недопонял материал и начал обучать других
Я лишь хочу сказать, что не стоит читать книги по синтаксису какого нибудь языка, ведь они быстро устаревают и проще пройти какой-то курс, но уже с хорошей базой, полученной из книг, чтобы не было искажений. Алгоритмы, концепции программирования(API, ООП, FLUX, DRY и тд) — это базис, на котором держаться все языки, поэтому стоит на этой недельке почитать книгу по алгоритмам:)
Это отличный источник информации, но не каждый может прочесть книгу до конца, да и пока автор напишет,оформит и напечатает, пройдёт уж слишком много времени, хотя в наше время печать книги стало распространённым явлением и написать книгу может любой желающий, но все равно это занимает некоторое время, а курсы на их месте выглядят более перспективными
Тогда можно вообще не читать книги? — спросите вы, и я вам отвечу: «Конечно же нет!» Все преподаватели на курсах получали информацию от своих менторов, а те, в свою очередь, учились по книгам, поэтому новичкам так сложно понять, что говорят на курсах, ведь это получается поломанный телефон: ментор объяснил, но его словарный запас был мельче, чем у автора книги, ученик из-за этого недопонял материал и начал обучать других
Я лишь хочу сказать, что не стоит читать книги по синтаксису какого нибудь языка, ведь они быстро устаревают и проще пройти какой-то курс, но уже с хорошей базой, полученной из книг, чтобы не было искажений. Алгоритмы, концепции программирования(API, ООП, FLUX, DRY и тд) — это базис, на котором держаться все языки, поэтому стоит на этой недельке почитать книгу по алгоритмам:)
Drag & Drop.
Создание drag and drop с использованием современного синтаксиса ES6 и немножечко reduce. Я нашёл англоязычный урок, но даже для тех, кто не знает английский все должно быть более-менее понятно. Советую почаще смотреть англоязычные туториалы, чтобы подтянуть произношение и не говорить php как пхп, ну это я уже утрирую
Создание drag and drop с использованием современного синтаксиса ES6 и немножечко reduce. Я нашёл англоязычный урок, но даже для тех, кто не знает английский все должно быть более-менее понятно. Советую почаще смотреть англоязычные туториалы, чтобы подтянуть произношение и не говорить php как пхп, ну это я уже утрирую
SVG анимация.
Большая статья, в которой разобраны все аспекты анимации векторной графики. Автор рассказывает про 2 типа svg анимации: через CSS и с помощью SMIL анимации (на самом деле это SVG анимация, которая базируется на SMIL и расширяет его функционал). SMIL стоит использовать тогда, когда нужно сделать сложную анимацию, а возможностей CSS не хватает( следите за поддержкой браузеров)
Большая статья, в которой разобраны все аспекты анимации векторной графики. Автор рассказывает про 2 типа svg анимации: через CSS и с помощью SMIL анимации (на самом деле это SVG анимация, которая базируется на SMIL и расширяет его функционал). SMIL стоит использовать тогда, когда нужно сделать сложную анимацию, а возможностей CSS не хватает( следите за поддержкой браузеров)
Сложный JavaScript.
Бесплатный курс по прокачанному js, будет полезно как новичкам, так и опытным разработчикам, сам часто заглядываю, чтобы повторить, ведь все не запомнишь. Я в этом уже не раз убедился…
И да, все проходит с практикой, но фундаментальные вещи тоже часто забываются. Особенно если надо что-то объяснить, а люди не могут и двух слов связать. Эти вещи скорее всего спросят у вас, если вы будете устраиваться в компанию, так что советую повторить
Бесплатный курс по прокачанному js, будет полезно как новичкам, так и опытным разработчикам, сам часто заглядываю, чтобы повторить, ведь все не запомнишь. Я в этом уже не раз убедился…
И да, все проходит с практикой, но фундаментальные вещи тоже часто забываются. Особенно если надо что-то объяснить, а люди не могут и двух слов связать. Эти вещи скорее всего спросят у вас, если вы будете устраиваться в компанию, так что советую повторить
LinkedIn.
Соц сеть для поиска работы, контактов или полезных знакомств. Решил тоже завести для себя, ведь чем раньше я это сделаю, тем больше это поможет в дальнейшем (так же как и с гитхабом)
Когда у вас есть хороший профиль в linkedIn-е, вам больше не нужно мониторить hh.ru или какой-то другой сайт по поиску работы, ведь HR-ы будут находить вас и писать именно в LinkedIn-е. Поэтому стоит заводить свой профиль уже сейчас, предлагаю так же подписаться на меня, взамен сделаю тоже самое. Будем вместе прокачиваться, ну и делиться опытом, удачи :)
Соц сеть для поиска работы, контактов или полезных знакомств. Решил тоже завести для себя, ведь чем раньше я это сделаю, тем больше это поможет в дальнейшем (так же как и с гитхабом)
Когда у вас есть хороший профиль в linkedIn-е, вам больше не нужно мониторить hh.ru или какой-то другой сайт по поиску работы, ведь HR-ы будут находить вас и писать именно в LinkedIn-е. Поэтому стоит заводить свой профиль уже сейчас, предлагаю так же подписаться на меня, взамен сделаю тоже самое. Будем вместе прокачиваться, ну и делиться опытом, удачи :)
MoscowJs.
Если у вас есть пару свободных часов, и вы хотите с пользой отдохнуть, то советую посмотреть 2 онлайн-конференции:
Собеседование глазами кандидата и Собеседование глазами компании. Вообщем желаю узнать что-то новое, и просто весело провести время
Вообще отдыхать с пользой это, как по мне, отдельный навык, который стоит прокачивать. Полезнее будет отдыхать, обучаясь, смотря какой-то курс или плавая в бассейне, чем сидеть на диване и скроллить бесконечную ленту в инстаграме
Если у вас есть пару свободных часов, и вы хотите с пользой отдохнуть, то советую посмотреть 2 онлайн-конференции:
Собеседование глазами кандидата и Собеседование глазами компании. Вообщем желаю узнать что-то новое, и просто весело провести время
Вообще отдыхать с пользой это, как по мне, отдельный навык, который стоит прокачивать. Полезнее будет отдыхать, обучаясь, смотря какой-то курс или плавая в бассейне, чем сидеть на диване и скроллить бесконечную ленту в инстаграме
Cookies.
Когда вы заходите не любой сайт, браузер создаёт специальный файл, который называется cookie. Этот файл всегда передаётся вместе с запросом на сервер и с каждым ответом приходит обратно в браузер, изменять cookie может как браузер, так и сервер. Чаще всего их используют, когда надо сделать авторизацию на сайте, cookie, в этом случае, служат для идентификации пользователя
Хорошо, но тогда почему нельзя просто залезть в чужие куки и посмотреть пароль? Дело в том, что сервер заранее кодирует важные данные и просто так не получиться залезть в DevTools и посмотреть там пароль, потому что только сервер может его раскодировать
Каждая кука имеет определённое время жизни, оно может отличаться в зависимости от сервера и когда время жизни истечёт кука соответсвенно удалиться, но если поставить галочку «запомнить меня» при регистрации, то время жизни куки увеличиться и вам не придётся постоянно авторизовываться
Если немного подзабыли про куки, то можно послушать небольшой ликбез:
Когда вы заходите не любой сайт, браузер создаёт специальный файл, который называется cookie. Этот файл всегда передаётся вместе с запросом на сервер и с каждым ответом приходит обратно в браузер, изменять cookie может как браузер, так и сервер. Чаще всего их используют, когда надо сделать авторизацию на сайте, cookie, в этом случае, служат для идентификации пользователя
Хорошо, но тогда почему нельзя просто залезть в чужие куки и посмотреть пароль? Дело в том, что сервер заранее кодирует важные данные и просто так не получиться залезть в DevTools и посмотреть там пароль, потому что только сервер может его раскодировать
Каждая кука имеет определённое время жизни, оно может отличаться в зависимости от сервера и когда время жизни истечёт кука соответсвенно удалиться, но если поставить галочку «запомнить меня» при регистрации, то время жизни куки увеличиться и вам не придётся постоянно авторизовываться
Если немного подзабыли про куки, то можно послушать небольшой ликбез:
Rest API.
У каждой программы есть свой интерфейс, через который осуществляется работа с данной программой. Это нужно для сокрытия лишних деталей, о который пользователю лучше не догадываться. И по сути, любая библиотека — это та же программа, в которой есть свои объекты, интерфейсом которых является то, какие методы и свойства у него доступны из вне
Сервер является программой, интерфейсом(API) которого является набор url адресов, но просто знать адреса, чтобы отправить запрос, будет недостаточно, надо еще знать тип запроса, параметры, которые нужно передать и response, который вернет нам сервер
Rest API — это некая рекомендация/договоренность для упорядочивания запросов на сервер, правила, по которым стоит взаимодействовать с сервером, в Rest API используются такие CRUD методы: get(получить данные), post(отправить данные), put,patch(обновить данные) и delete соответсвенно удалить
Подробнее можно посмотреть в видео ниже:
У каждой программы есть свой интерфейс, через который осуществляется работа с данной программой. Это нужно для сокрытия лишних деталей, о который пользователю лучше не догадываться. И по сути, любая библиотека — это та же программа, в которой есть свои объекты, интерфейсом которых является то, какие методы и свойства у него доступны из вне
Сервер является программой, интерфейсом(API) которого является набор url адресов, но просто знать адреса, чтобы отправить запрос, будет недостаточно, надо еще знать тип запроса, параметры, которые нужно передать и response, который вернет нам сервер
Rest API — это некая рекомендация/договоренность для упорядочивания запросов на сервер, правила, по которым стоит взаимодействовать с сервером, в Rest API используются такие CRUD методы: get(получить данные), post(отправить данные), put,patch(обновить данные) и delete соответсвенно удалить
Подробнее можно посмотреть в видео ниже:
Как использовать wp термины правильно.
У кого-то посты равны страницам, кто-то не знает о постах, знает только о записях, а у кого-то архив – это, «где документы лежат». Эта статья направлена на искоренение подобных ошибок, чтобы внутри WordPress сообщества стало проще общаться. Есть так же видео, для тех, кому этот формат больше заходит
У кого-то посты равны страницам, кто-то не знает о постах, знает только о записях, а у кого-то архив – это, «где документы лежат». Эта статья направлена на искоренение подобных ошибок, чтобы внутри WordPress сообщества стало проще общаться. Есть так же видео, для тех, кому этот формат больше заходит
Второй монитор.
Давно не было чего-то по вёрстке, но верстать я не перестал и это все ещё мне больше нравится, чем тот же реакт, просто потому что это легче. Давно не испытывал чувство, когда просто создаю инпут и туда не нужно пихать значение, а потом рендерить его по каждому чиху
Ну и раз уж я заговорил про верстку, то стоит отметить, что у меня появился второй монитор! Он стоит у меня уже месяц, но я так и не успел об этом вам рассказать…
Решил сверстать простенький макет, но некоторые моменты в нем оказались очень даже интересными. Код находился у меня на ноутбуке, а результат и макет я переключал на своём мониторе, верстать стало намного комфортнее и быстрее. Особенно это здорово, когда нужно перекинуть какой-то файл или изображение, вообщем обустраивайте своё рабочее пространство, а код и результат я прикреплю к посту
Давно не было чего-то по вёрстке, но верстать я не перестал и это все ещё мне больше нравится, чем тот же реакт, просто потому что это легче. Давно не испытывал чувство, когда просто создаю инпут и туда не нужно пихать значение, а потом рендерить его по каждому чиху
Ну и раз уж я заговорил про верстку, то стоит отметить, что у меня появился второй монитор! Он стоит у меня уже месяц, но я так и не успел об этом вам рассказать…
Решил сверстать простенький макет, но некоторые моменты в нем оказались очень даже интересными. Код находился у меня на ноутбуке, а результат и макет я переключал на своём мониторе, верстать стало намного комфортнее и быстрее. Особенно это здорово, когда нужно перекинуть какой-то файл или изображение, вообщем обустраивайте своё рабочее пространство, а код и результат я прикреплю к посту
Thunk.
Библиотека позволяющая диспачить функцию, которая принимает диспач, делает асинхронные операции и диспачит обычные экшены. Из коробки всякой асинхронщины в redux-е нету, редьюсеры меняют state синхронно, поэтому когда нам надо сделать какой-то запрос на сервер и потом изменить состояния, то мы используем санку
Диспачить можно только объекты, у которых есть хотя бы один ключ — type, а redux thunk является функцией, но тут нам на помощь приходит middleware, именно тут определяется: передан обычный экшен или же функция. Если mw увидит функцию, то он сначала исполнит все асинхронные операции, а потом будет диспачить обычные экшены
Для работы с асинхронностью существует так же библиотека redux-saga, она предназначена для больших приложений с множеством обращений к сторонним API, мне было бы интересно с ней поработать, ведь я слышал, что там используются генераторы для упрощения работы с асинхронным кодом
Нашёл небольшую статью по санкам:
Библиотека позволяющая диспачить функцию, которая принимает диспач, делает асинхронные операции и диспачит обычные экшены. Из коробки всякой асинхронщины в redux-е нету, редьюсеры меняют state синхронно, поэтому когда нам надо сделать какой-то запрос на сервер и потом изменить состояния, то мы используем санку
Диспачить можно только объекты, у которых есть хотя бы один ключ — type, а redux thunk является функцией, но тут нам на помощь приходит middleware, именно тут определяется: передан обычный экшен или же функция. Если mw увидит функцию, то он сначала исполнит все асинхронные операции, а потом будет диспачить обычные экшены
Для работы с асинхронностью существует так же библиотека redux-saga, она предназначена для больших приложений с множеством обращений к сторонним API, мне было бы интересно с ней поработать, ведь я слышал, что там используются генераторы для упрощения работы с асинхронным кодом
Нашёл небольшую статью по санкам:
Socket.io.
Библиотека для взаимодействия сервера и клиента в реальном времени. Благодаря сокетам мы можем создать непрерывное соединение, в отличие от обычных запросов на сервер, сокеты не ожидают респонса от сервера, тем самым они работают значительно быстрее тех же Ajax запросов
Socket.io работает на безе WebSocket API и делает взаимодействие с ним намного проще. Сокеты создают определённое соединение, которое будет неразрывно до тех пор, пока пользователь не закроет вкладку, это позволяет серверу быстро оповещать клиентов о новых сообщениях, курсах валют и тп
Ещё одним плюсом сокетов является то, что мы можем создавать свои события и в них оповещать всех клиентов об изменение данных, например: когда пользователь зашел в чат, нам надо оповестить об этом других участников и мы создаём новое событие, куда будем передавать id чата и имя нового пользователя, а потом просто отображать это на клиенте
Прикреплю к посту урок, в котором автор понятным языком обьясняет принципы, по которым работают сокеты, правда в первой части автор целых 2 часа разъясняет всякие мелочи, но зато этот курс подойдёт даже для тех, кто только недавно начал изучать react. По итогу вы сделаете небольшой чат, а мой итоговый результат я тоже прикреплю к посту, можете скачать и потестить
Так же если вы знаете бесплатные сервисы где можно разместить такой проект с бд и сервером, чтобы все работало и сообщения сохранялись в базе данных, то напишите мне в личку или в чат, удачи!
Библиотека для взаимодействия сервера и клиента в реальном времени. Благодаря сокетам мы можем создать непрерывное соединение, в отличие от обычных запросов на сервер, сокеты не ожидают респонса от сервера, тем самым они работают значительно быстрее тех же Ajax запросов
Socket.io работает на безе WebSocket API и делает взаимодействие с ним намного проще. Сокеты создают определённое соединение, которое будет неразрывно до тех пор, пока пользователь не закроет вкладку, это позволяет серверу быстро оповещать клиентов о новых сообщениях, курсах валют и тп
Ещё одним плюсом сокетов является то, что мы можем создавать свои события и в них оповещать всех клиентов об изменение данных, например: когда пользователь зашел в чат, нам надо оповестить об этом других участников и мы создаём новое событие, куда будем передавать id чата и имя нового пользователя, а потом просто отображать это на клиенте
Прикреплю к посту урок, в котором автор понятным языком обьясняет принципы, по которым работают сокеты, правда в первой части автор целых 2 часа разъясняет всякие мелочи, но зато этот курс подойдёт даже для тех, кто только недавно начал изучать react. По итогу вы сделаете небольшой чат, а мой итоговый результат я тоже прикреплю к посту, можете скачать и потестить
Так же если вы знаете бесплатные сервисы где можно разместить такой проект с бд и сервером, чтобы все работало и сообщения сохранялись в базе данных, то напишите мне в личку или в чат, удачи!
Классовые компоненты и хуки.
Начиная с версии 16.8 в реакте появились хуки, которые упрощают работу, оптимизируют ваше приложение и избавляют вас от прописывания лишних обёрток, но классы никуда не деваются, они все ещё остаются неотъемлемой частью реакта. Вот 3 причины почему стоит использовать хуки:
•Простота восприятия. Новичкам трудно понять классы и this, даже я долго не мог это понять, а использование обычных функций сокращает код, делает его проще и более оптимизированным
•Не нужно лишних обёрток. Архитектура становиться проще, а вложенность — меньше. Это позволяет лучше поддерживать приложение и ориентироваться в коде
•Обучение. Технологии будут меняться и это здорово, главное помнить, что новые технологии — новые задачи, соответсвенно придумываются новые решения, плагины, библиотеки, для их решения, а опыт, полученный в других отраслях, помогает придумать необычные решения ежедневных задач и делает наш труд более востребованным
Начиная с версии 16.8 в реакте появились хуки, которые упрощают работу, оптимизируют ваше приложение и избавляют вас от прописывания лишних обёрток, но классы никуда не деваются, они все ещё остаются неотъемлемой частью реакта. Вот 3 причины почему стоит использовать хуки:
•Простота восприятия. Новичкам трудно понять классы и this, даже я долго не мог это понять, а использование обычных функций сокращает код, делает его проще и более оптимизированным
•Не нужно лишних обёрток. Архитектура становиться проще, а вложенность — меньше. Это позволяет лучше поддерживать приложение и ориентироваться в коде
•Обучение. Технологии будут меняться и это здорово, главное помнить, что новые технологии — новые задачи, соответсвенно придумываются новые решения, плагины, библиотеки, для их решения, а опыт, полученный в других отраслях, помогает придумать необычные решения ежедневных задач и делает наш труд более востребованным
Математика и программирование.
Я уже рассказывал в одном из постов, что я смотрю открытые собеседования. Придумал я одну задачку, решил ее в одну строку и решил скинуть автору канала, звучала она примерно так: «Реализовать функцию plus, которая будет возвращать сумму чисел от 1 до заданого значения»
Но тут автор канала посоветовал мне прочитать про арифметическую прогрессию, после этого он даже выпустил короткий ролик, в котором на похожей задачке разобрал работу этой простой формулы. А потом оказалось, что мы по алгебре как раз сейчас проходим эту тему. Поэтому стоит знать математику и не придумывать велосипеды. Вот, кстати, этот ролик, советую глянуть:
Я уже рассказывал в одном из постов, что я смотрю открытые собеседования. Придумал я одну задачку, решил ее в одну строку и решил скинуть автору канала, звучала она примерно так: «Реализовать функцию plus, которая будет возвращать сумму чисел от 1 до заданого значения»
Но тут автор канала посоветовал мне прочитать про арифметическую прогрессию, после этого он даже выпустил короткий ролик, в котором на похожей задачке разобрал работу этой простой формулы. А потом оказалось, что мы по алгебре как раз сейчас проходим эту тему. Поэтому стоит знать математику и не придумывать велосипеды. Вот, кстати, этот ролик, советую глянуть:
Расширяемость.
Когда вы пишите простой проект, это не выглядит так важно, но если ваш проект начнёт развиваться, то простота и структурированность кода вам точно помогут, вот пару советов для долгосрочных проектов:
•не повторяйтесь, выносите логику по разным файлам, делегируйте ее отдельным частям приложения
•не плодите костыли и условия, иногда это оправданно, но если у вас гора из условий, то значит на каком-то этапе у вас что-то прошло не так
•не пишите сложный код, не стоит все упрощать, лучше немного больше написать, но потом спокойно поддерживать
Когда я хочу добавить какую-то фичу себе на сайт или исправить баги(благо их достаточно), то у меня уходит очень много времени именно на понимание кода и определения зависимостей, ведь я делал сайт именно для прокачки своих навыков, и если бы я его начал писать сейчас, то некоторые моменты сделал бы по-другому(убрал бы JQuery)
Когда вы пишите простой проект, это не выглядит так важно, но если ваш проект начнёт развиваться, то простота и структурированность кода вам точно помогут, вот пару советов для долгосрочных проектов:
•не повторяйтесь, выносите логику по разным файлам, делегируйте ее отдельным частям приложения
•не плодите костыли и условия, иногда это оправданно, но если у вас гора из условий, то значит на каком-то этапе у вас что-то прошло не так
•не пишите сложный код, не стоит все упрощать, лучше немного больше написать, но потом спокойно поддерживать
Когда я хочу добавить какую-то фичу себе на сайт или исправить баги(благо их достаточно), то у меня уходит очень много времени именно на понимание кода и определения зависимостей, ведь я делал сайт именно для прокачки своих навыков, и если бы я его начал писать сейчас, то некоторые моменты сделал бы по-другому(убрал бы JQuery)
Замыкание.
Если по-простому, то это функция, имеющая доступ к переменным родительской функции. Это позволяет нам как бы «замкнуть» нужные переменные, доступ к которым будет иметь только возвращённая функция, это происходит потому, что у каждой функции есть своя область видимости. Поэтому даже после выполнения родительской функции, переменные будут доступны дочерней
Это бывает полезно, когда нам нужно снабдить функцию новыми переменными, не изменяя саму функцию(например redux thunk), а так же, когда нам нужно сделать один и тот же или похожий функционал, который должен работать отдельно друг от друга, например: нам нужно сделать несколько счетчиков на странице и чтобы не плодить одинаковые функции, мы можем создать замыкание. Тогда мы просто можем написать:
function counter(){
let count = 0;
return function(){
return count++;
};
}
const firstCounter = counter();
где counter — функция, возвращающая новую функцию, которая замкнёт переменные родительской. А firstCounter — счётчик, работающий независимо от других счетчиков. И теперь мы можем делать неограниченное количество счётчиков на сайте
Так же советую почитать статью про замыкания:
Если по-простому, то это функция, имеющая доступ к переменным родительской функции. Это позволяет нам как бы «замкнуть» нужные переменные, доступ к которым будет иметь только возвращённая функция, это происходит потому, что у каждой функции есть своя область видимости. Поэтому даже после выполнения родительской функции, переменные будут доступны дочерней
Это бывает полезно, когда нам нужно снабдить функцию новыми переменными, не изменяя саму функцию(например redux thunk), а так же, когда нам нужно сделать один и тот же или похожий функционал, который должен работать отдельно друг от друга, например: нам нужно сделать несколько счетчиков на странице и чтобы не плодить одинаковые функции, мы можем создать замыкание. Тогда мы просто можем написать:
function counter(){
let count = 0;
return function(){
return count++;
};
}
const firstCounter = counter();
где counter — функция, возвращающая новую функцию, которая замкнёт переменные родительской. А firstCounter — счётчик, работающий независимо от других счетчиков. И теперь мы можем делать неограниченное количество счётчиков на сайте
Так же советую почитать статью про замыкания:
Самодельные хуки.
В видео автор показывает самые популярные использование кастомных хуков, это позволяет убрать повторение кода и переиспользовать функционал, так же весь код из урока доступен на GitHub. Больше всего мне понравился хук useScroll, который позволяет делать бесконечную прокрутку и подгрузку блоков, правда его можно оптимизировать, но это будет уже домашним заданием
PS: всех с 8 марта! :)
В видео автор показывает самые популярные использование кастомных хуков, это позволяет убрать повторение кода и переиспользовать функционал, так же весь код из урока доступен на GitHub. Больше всего мне понравился хук useScroll, который позволяет делать бесконечную прокрутку и подгрузку блоков, правда его можно оптимизировать, но это будет уже домашним заданием
PS: всех с 8 марта! :)