Skip to content

Клиент ненадежного сервера фрагментов изображений

Notifications You must be signed in to change notification settings

stevebest/2mainstream-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2mainstream-client

Клиент ненадежного сервера фрагментов изображений.

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

Эволюция, The Codeless Code :: Koans for the Software Engineer

Вы потратили пару дней на изучение Node API, сели реализовывать тестовое задание и через несколько часов добились результата. Я сэкономлю вам время и сделаю это за вас, ожидая, что ваше решение будет выглядеть примерно так, как оно выглядит.

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

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

Дайте возможность использовать свой код другим программистам. Сделайте из плохой программы хороший модуль. Теперь ваш код запускает не человек, а другая программа - представьте, каким образом она хочет его использовать: как она должна передать вашему коду необходимые параметры и на какие события хочет реагировать? Что, если другой программист хотел бы регулировать ширину канала, которую он хотел бы доверить вашему модулю, чтобы его собственный код тоже мог пользоваться сетью? Что, если он хочет складывать фрагменты файлов не на диск, а в базу данных? Что, если он пишет приложение, которое работает целиком в браузере и хочет воспользоваться вашим модулем?

Напишите тесты. Хорошие тесты лучше хорошей документации.

Не повторяйте уже сделанную работу - повторяю вам еще раз. Изучите коллекцию готовых модулей и решите, какие из них могут вам помочь сделать ваш код лучше. Подсказка: browserify, ansi, dreamopt, mocha (читается "мокка"), growl и многие другие.

Удачи!

About

Клиент ненадежного сервера фрагментов изображений

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published