През последните няколко дни навлязох дълбоко в дълбините на нещата с Node.js и Express. Наистина ми харесва, но сега, когато се занимавам с нещо повече от първоначалната настройка, започвам да осъзнавам, че поддържането на този вид кодова база може да ме изтощи.

Бях предупреден от няколко други за обратните извиквания в Node.js и най-накрая разбрах защо. Не ми помага това, че идвам от Ruby, където всичко е синхронно — мога да направя повикване до отдалечен сървър на една линия и да отговоря на следващата. В Node.js вторият ред ще бъде извикан веднага след това, освен ако не го поставим във функция за обратно извикване.

В случаи на употреба, които разчитат на асинхронен код, това е голяма полза от Node.js, но с Cushion това се превръща в разсейване. Тъй като Cushion ще бъде много натоварен с фронтенд, всъщност нямам нужда от много фантазия на бекенда – най-вече за обслужване на страници и данни. Поради това мисля, че е най-добре да се върнем към Ruby и да изградим Cushion върху Sinatra.

Осъзнавам, че напоследък се забърках с решенията за стекове, но мисля, че е добре да извадя това от системата си сега, а не по-късно. Не бих искал да съм готов наполовина с Cushion, преди да осъзная грешката, след което неохотно да изграждам останалата част от приложението, знаейки, че е предназначено за пренаписване.

Друга светла страна на това решение е, че мога да се върна към това, което знам. Тъй като съм написал няколко Ruby приложения в миналото, знам какво да очаквам. Няма да губя време в кривата на обучение и мога да използвам всичко, което научих през последните няколко години в изграждането на Ruby приложения.

Сега, след като изгоних новите технологии от моята система, съм развълнуван да продължа с пълна скорост с Cushion.

За повече актуализации следвайте @cushionapp и се абонирайте за бюлетина.

Първоначално публикувано в cushionapp.com.