TODO: подумать над структурой
- Закон Дырявых Абстракций
- Ричард Фейнман - Магниты и вопросы "почему?"
- Ментальное программирование
- Человеческий фактор или «соглашения не работают»
- The Zen of Python
- Утиная типизация
- Рефлексия
- Иерархия ошибок в Ruby
- Объектная модель в Ruby
- Введение в объектно-ориентированный Ruby
- Вникаем в include и extend
- Гномики и метапрограммирование в Ruby
- Unexpected Ruby Behaviour
- What Does Your Webserver Do When a User Hits Refresh?
- Когда не использовать unless
- value object
- respond to missing
- Иерархия контроллеров
- Тестирование в стиле TSA
- 7 Ways to Decompose Fat ActiveRecord Models
- Give Rails Autoloading a Boot to the Head
- Что же такое Railtie, Engine и Plugin?
- Does My Rails App Need a Service Layer?
- Rails is not your application
- The 10 Most Underused ActiveRecord::Relation Methods
- About the composed_of removal
- Where's Your Business Logic?
- DateTime.current
- На функциональные баги пишется тест;
- Запросы к базе только в моделях, снаружи scopes или методы;
- Не используем default_scopes;
- Используем новый формат валидаторов (validators);
- Все константы (magic numbers, urls) подставляются через конфиги и не пишутся в коде;
- В шаблонах можно использовать числа: для вывода массива в 3 колонки;
- Строки через локали;
- Можно локализировать partial целиком;
- Покрытие контроллеров > 90%;
- Объекты получаем отдельно, используем отдельно;
- Извлекаем информацию из БД за постоянное число запросов(см. N+1);
- Не увлекаемся индексами: стало тормозить - добавили индекс;
- На уникальное поле - уникальный индекс (+ uniqueness).
- Github flow
- GitHub Flow: рабочий процесс Гитхаба
- Git flow / Удачная модель ветвления для Git
- Pro Git
- Думай как Git, руководство по Git
- Внтутреннее устройство Git
- Что скрывает от нас директория .git
- Git Tips From the Pros
- tryGit
- Learn Git Branching
- Разделение получения и использования
- Принцип наименьшего удивления (ПНУ)
- RESTful API для сервера – делаем правильно
- GRASP
- Принцип одного уровня абстракции
- Закон Деметры
- Принцип единственности ответственности
- Принцип открытости/закрытости
- Принцип замещения Лисков
- Принцип разделения интерфейса
- Принцип инверсии зависимостей
- Command Query Separation
- SOLID
- Hexagonal/Onion Architecture - слоим приложения
- Корень агрегации
- Репозиторий
- Создание домена
- DDD подход к решению задачи сложной фильтрации данных
- DDD: начало
-
validates - частые валидации (email, slug)
-
simple_form - формы на стероидах
-
webmock - stub/mock для io
-
simplecov - test coverage
-
factory_girl_rails - Удобная замена фикстур
-
ransack - Object-based searching (бывший MetaSearch)
-
enumerize - поле типа перечисление с поддержкой I18n и ActiveRecord/Mongoid
-
js-routes - генерирует javascript файл содержащий именованные пути из rake routes
-
gon - Your Rails variables in your JS
-
ancestry - Organise ActiveRecord model into a tree structure (MP)
-
acts-as-taggable-on - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts
-
cocoon - Dynamic nested forms using jQuery made easy; works with formtastic, simple_form or default forms
-
omniauth - Масштабируемая система OAuth авторизации
- device
- active_admin
- can_can
- paperclip
- http://superherojs.com/
- http://shichuan.github.com/javascript-patterns/
- http://killdream.github.com/blog/2011/10/understanding-javascript-oop/index.html
- http://addyosmani.github.com/todomvc/
- http://github.com/madrobby/keymaster
- Бындю
- Алексей Махоткин
- nashbridges.me
- rubyflow.ru
- Технические заметки одного Евтуховича
- solnic.eu
- Блог Леонида Шевцова
- Коды возврата & исключения
- устройство индексов
- Defensive Design. Откуда берутся сбои
- TDD
- REST
- UML
- CLI
- Протокол HTTP
- Алгоритмы и структурыданных
- Анатомия ошибок
- Экстремальное программирование – реальность и мифы
- Идеальный программист (Роберт Мартин)
- Совершенный код (С. Макконнелл)
- Программист-прагматик. Путь от подмастерья к мастеру (Э.Хант, Д.Томас)
- Паттерны проектирования (Э. Фримен, Э. Фимен, К. Сьерра, Б. Бейтс)
- Приемы объектно-ориентированного проектирования. Паттерны проектирования (Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес)
- Чистый код (Роберт Мартин)
- Принципы, паттерны и методики гибкой разработки на языке C# (Р.С.Мартин, М.Мартин)
- Рефакторинг с использованием шаблонов (Джошуа Кериевски)
- Архитектура корпоративных приложений (М. Фаулер)
- Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем (Эрик Эванс)
- Джоэл о программировании (Джоэл Спольски)
- Оптимизация баз данных (Деннис Шаша, Филипп Бонне)
- Рефакторинг sql приложений
- Рефакторинг баз данных (Скотт В. Эмблер, Эмблер Прамодкумар Дж. Садаладж)
- UML основы (М. Фаулер)
- Код (Чарльз Петцольд)
- Операционные системы (Столлингс)
- Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)
- Современные операционные системы (Эндрю Таненбаум)
- Руководство Администратора Linux (Эви Немет, Гарт Снайдер, Трент Хейн)
- Непрерывная интеграция (Поль М. Дюваль, Стивен Матиас и Эндрю Гловер)
- Человеческий фактор. Успешные проекты и команды (Том Демарко и Тимоти Листер)
- Мифический человеко-месяц (Фредерик Брукс)
- Как сдвинуть гору фудзи? (У. Паундстоун)
- ruby-toolbox
- airbrake
- newrelic.com
- travis-ci
- codeclimate.com
- relishapp.com
- lucidchart.com
- gemnasium.com
- stillmaintained.com
- coderwall.com
- cloud9 IDE
- Bootstrap, from Twitter
- resources 1
- resources 2
- Bootbox.js
- Bootswatch
- Built With Bootstrap
- WrapBootstrap
- Boot snipp
- Как пользоваться vim
- vimcasts
- vimgolf
- vimbits
- эффективное использование vim: «incredibly tips, part I»
- эффективное использование vim: «from the very begining»
- Graphical Cheat Sheet
- vim-adventures
- keepassx - password manager
- BitTorrent Sync
- Ruby on Rails API Search
- XV - XML Viewer
- JSONView
- Advanced REST client Application
- NewRelic + Airbrake
Огромное спасибо команде kaize.