Где можно потренировать навыки JavaScript OOP?

Идея такова: взяться за написание большого/среднего приложения на JS, для того что бы выработать "правильное мышление на JS" и писать высококачественный код без велосипедов, проработать проектирование и реализацию JS приложения. Как известно JS сильно отличается от других языков (наследование на прототипах, своеобразный стиль кода, свои паттерны).

Мне нужно что то на подобие технического задания приложения, в котором будет жёсткий платсдарм для тренировки ООП и сложного AJAX взаимодействия.

Может у кого-либо были проекты на которых удалось хорошо натренировать JS. Не абстрактные примеры из книг, что либо из реального мира. Практическое приложение под реальный проект. Так же было бы хорошо увидеть ссылки на хороший код, читая который можно улучшить свои навыки. Или может быть кто расскажет о своих разработках большого/среднего масштаба.
  • Вопрос задан
  • 5697 просмотров
Решения вопроса 1
deadbyelpy
@deadbyelpy
веб-шмеб
Какой-то есть опыт с js?
Если его нету. Начните с начал и т.п., иначе изучение чужого кода ничего не даст
OOP в JS нет, в том понимании что вы предлагаете.
Придется постигать дзен JS.

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

Примеры хорошего кода: Design-Patterns-in-Javascript
pdf.js

Почитать:
Масштабируемые JavaScript прило...
Использование объектов для...

Примеры заданий:
клон Sticky Notes для винды
Рисовалка на canvas
Расширение для браузера, фильтрующее рекламу на странице без использования черных списков. Анализ содержания текста.
"Умный собеседник" с распознаванием речи пользователя через google api
Клиентский агрегатор новостей.
Плеер в связке ВК + last.fm
Шахматы на three.js
Плагин/Модуль для фремворка (в процессе создания проектов, самому захочется добавить функционал)

Может идеи вам и не понравятся.
Есть другой вариант. Ищем интересный таск на freelansim.ru
Делаем, в процессе получаем опыт. PROFIT.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
macik_spb
@macik_spb
Ф-ф-фрилансер :))
Да. Вопрос в уровне и желании. Я до сих пор до конца не въехал в эту «своеобразность».

Последнюю неделю пытаюсь разобраться в библиотеке KnockoutJS — построение MVVM модели и автоматическая привязка данных к интерфейсу (т.н. observables). Т.е. отслеживание изменений там или там, и соотв. изменение в остальной части приложения (на Хабре были статьи).

У меня есть несколько задач:
1. сделать для knockout новый тип структуры, реализующий подобие коллекций из backbone.js
2. написать расширение базовых классов KO для простого добавления функционала редактирования списка и добавления элементов в коллекцию. Типа навешиваем расширение на тип, и теперь можем реализовать простое редактирование с возможностью отката изменений.
3. на базе этого написать класс небольшого виджета, который мог бы сам на основе модели генерировать форму для структуры данных, точнее коллекции таких записей.
Т.е. хотя бы частично упростить работу с многоуровневой структурой коллекций данных и осуществления связи всего этого с интерфейсом для их редактирования.

Но это задачи скорее не для изучения как такового, а как практика после получения основных знаний. Тут можно смотреть в ответ @deadbyelpy .
Ответ написан
Комментировать
macik_spb
@macik_spb
Ф-ф-фрилансер :))
Да, чуть не забыл — есть такой сайт todomvc.com, сборник примеров реализации простого «to-do» приложения на различных JS библиотеках и фреймворках (есть и просто на чистом JS). Может быть полезно сравнить различные реализации.
Ответ написан
Комментировать
xaver
@xaver
Цифровой кочевник
Поизучайте Extjs
ТЗ: напишите систему учета товаров для интернет магазина :)
Ответ написан
Комментировать
Shuhrat
@Shuhrat
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $