01.10.13
Как не нужно изучать новые технологии 01.10.13

Приветствую, %USERNAME%! Очевидно, я совсем- совсем запустил свой блог. Почему? Не было ни желания, ни времени. Очень плотно приходится работать с WebRTC и сегодня же я решил поделиться прогрессом в работе над такой клевой штукой, как WebRTC и моем мнением о том, как не нужно вникать в новые технологии.

 

Интересующихся прошу под кат!


Во- первых, чтение документации- залог успеха.

Очевидный, кажется, пункт, не так ли? А вот и нифига. Когда натыкаешься на новую технологию хочется как можно скорее начать ее использовать. Ты возьмешь готовую библиотеку\скопипастишь код и начнешь с ним баловаться, а после и наращивать какой- то функционал вокруг неизведанного ядра. Придет время и тебе придется расширить возможности неизвестного. Допустим, что разобраться в строении, например, библиотеки не составит труда. Но как, черт подери, работает эта новая фича? А хрен его знает.

Я сам попал в такую ситуацию, когда только наткнулся на WebRTC. Что я тогда сделал? Я нагуглил библиотеку WebRTC.io и построил вокруг нее ViPeer с некоторым числом ништяков. А потом пришла пора ввести фишки, которые эта библиотека не умела. И тогда я встал. Встал до тех пор, пока не принялся читать доки. Доки по peer-to-peer connections, media streams, SDP, ICE-STUN-TURN и вообще SIP ради самообразования, то есть все аспекты RTC. Это помогло, механизм работы был понят и написана своя библиотека на базе WebRTC.io, которую мне гораздо проще модифицировать, чем написанную кем- либо еще.

Во- вторых, важно хорошее знание ЯП, на котором новая технология реализуется.

Когда я приступил к разработке ViPeer, я имел весьма посредственные знания в JavaScript. Тем более, в варианте сервер- сайда.  По началу никак не мог привыкнуть к асинхронности выполнения кода. После последовательной интерпретации PHP такой подход не укладывался в голове. А краши, постоянные краши node.js- сервера раздражали чуть более, чем полностью, пока я не научился спорные вещи закрывать в try..catch, а после фиксить все, что хотя бы пыталось уронить систему.

Сегодня я уже освоился в JS, а к работе с PHP приступаю со скрипом в сердце. Вот так за полгода я полюбил JS больше, чем PHP за три.

В- третьих, не городи костыли.

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

В- четвертых, один проект- одна новинка.

Если ты стоит задача создать проект за короткий срок и с минимальным числом ошибок, то никогда не бери в него больше одной неизвестной тебе техники\технологии. Это логично и очевидно, но все же.

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

 

Спасибо за прочтение записки, удачных эксперементов, %USERNAME%!