<MyRusakov.ru />

Создание нейросетей на Python

Создание нейросетей на Python

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

Из курса Вы узнаете всю необходимую теорию и терминологию. Научитесь создавать нейросети самых разных архитектур и обучать их. Также Вы создадите собственный фреймворк. Что очень важно проделать для грамотного использования того же PyTorch. Затем Вы изучите и сам PyTorch.

Помимо уроков к курсу идут упражнения для закрепления материала.

Ещё Вы получите Бонусы, дополняющие основной курс: "Распознавание изображений", "Анализ настроения по тексту отзыва", "Программирование на Python с Нуля до Гуру".

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

JavaScript: стоит ли избегать стиля написания кода “функция в функции”?
22.01.2017 06:37:58 JavaScript: стоит ли избегать стиля написания кода “функция в функции”? Сообщение #1
SuperSonicFire

SuperSonicFire

Новичок

Новичок

Дата регистрации:
22.06.2016 09:29:52

Сообщений: 2

Допустим, у нас есть JavaScript приложение с большим количеством виджетов. Рассмотрим на примере шапки сайта. Функция `initHeader()` собирает все нужные для дальнейшей работы DOM-объекты внутри шапки, добавляет обработчики событий, вообщем готовит к её использованию. Соответствует ли приведённый ниже шаблон кода "правилам хорошего тона" написания кода?

function initHeader(){
// объекты виджета, с которыми будем работать в функциях
var var1 = $('#div1';
var var2 = $('#div2';
// ...

// вспомогательные функции

function function1(){
  // ...
}

function function2(){
  // ...
}

function function3(){
  // ...
}
}
Особенность этого шаблона в том, что все вспомогательные функции находятся внутри основной. Также: функцию initHeader() мы вызываем только один раз (например после HTML-кода шапки), а вспомогательные фукнции - сколько угодно раз. Пример вспомогательной фукнции - обработка поля "поиск" и кнопки рядом с ним, которые часто располагается именно в шапке. 

Зачем такая структура? Первое и самое главное: операция по выборке DOM-объектов является очень ресурсозатратной; соглано курсу https://myrusakov.ru/reactjs_course.html, библиотека jQuery делает это в порядка 10 раз медленнее нативного JavaScript. Поэтому, такие операции необходимо минимизировать. Если мы напишем все вспомогательные функции вне initHeader(), то тогда придётся либо передавать захваченные, например, фукнцией jQeury() DOM-объекты во вспомогательные функции в виде аргументов, либо захватывать их заново, чего мы и стремимся избежать. В приведённом мной шаблоне все переменные, объявленные в initHeader, будут доступны во всех внутренних функциях.

Почему же не устраивает вариант с передачей аргументов? Согласно книге Роберта Мартина "Чистый код", в идеале у функции не должно быть аргументов вообще, а если аргументы неизбежны, то должен быть один, максимум два аргумента. Но в нашем случае, внутри вспомогательных функций может быть нужно большое количество переменных: это и jQuery-объекты, какие-то константы, рабочие переменные наподобие времени анимации, какие-то введённые данные и так далее. Если написать все вспомогательные функции вне основной, то тогда придётся всё это передавать в виде аргументов, и в два аргумента уложиться едва ли получится. Такая структура, которую я показал, избавляет нас от необходимости передавать аргументы.

Приведите, пожалуйста, аргументы за и/или против такого подхода.
Профиль