Proč technologie .NET jsou (a budou) pohánět naši aplikaci

Ve Snipcartu jsem vyvíjel už rok. To, co začalo jako standardní stáž, dozrálo v vzrušující startovací koncert na plný úvazek. Někdy nemůžu uvěřit, že jsem tuto příležitost málem sabotoval od samého začátku.

Proč? Kvůli třem jednoduchým písmenům:.NET

Vidíte, když mi naši spoluzakladatelé nabídli práci, byl jsem čerstvě po škole a měl jsem zájem pracovat se „špičkovými“ technologiemi. Chtěl jsem zůstat na vrcholu své hry. Chcete-li se cítit relevantní jako mladší vývojář

Moje možnosti tedy byly buď kódovat vedlejší projekt, nebo se připojit ke startupu. Naivní jsem věřil, že ti poslední běží na moderních technologiích. Ale opravdu, kdo se zdravým rozumem aktualizuje celou produkční infra strukturu pokaždé, když se objeví hip framework? Dokonce ani závislí na refaktorování nejsou tak blázniví.

Snipcart, vytvořený pomocí technologií .NET, neodpovídal mým původním ambicím .

Tehdy jsem ještě držel starý cachovaný vize „uzavřeného“ ekosystému Microsoftu. Myslel jsem, že to váže vývojáře k Windows a společnosti k drahým nástrojům. Hypnotizovalo mě šílenství plného JS, takže architektura .NET pro mě nebyla přitažlivá. Ale tým, konečný produkt a uživatelská základna ano. Tak jsem dal své starosti stranou a stejně jsem do toho šel.

Rychle vpřed před několika týdny jsme se s naším hlavním vývojářem Charlesem hádali o pivech diskutovat o škálovatelnosti naší aplikace. Po pár půllitrech se mé pohřbené obavy z .NET znovu objevily. Bez obalu jsem se ho zeptal:

Proč .NET? Proč jste si na prvním místě vybrali tento rámec MSFT a proč si jej PONECHAT?

Příspěvek, který se chystáte číst, je střízlivou rekonstrukcí dlouhého rozhovoru, který následoval.

Co je to „technologie .NET“:framework Dot Net

Nejprve rychlá definice pro ty, kteří četli a ptali se Co jsou technologie .NET? :

.NET neboli „Dot Net“ je softwarový rámec vyvinutý společností Microsoft v roce 2002. Vývojářům nabízí několik jazyků, které lze prostřednictvím tohoto rámce zkompilovat a spustit. Jeho nejoblíbenější jazyk je C#. Nedávno Microsoft začal pracovat na nové multiplatformní open source verzi frameworku s názvem .NET Core.

Skvělý fakt:Stack Overflow, světová jednička pro vývojáře, využívá .NET.

Chcete se o tom dozvědět více? Přečtěte si tento podrobný přehled rámce.

A jaký je váš backendový stack SaaS .NET ve Snipcartu?

  • C# - programovací jazyk

  • ASP.NET Web API – webový rámec pro vývoj API

  • ASP.NET Core – nový webový framework, open source + více platforem

  • AppVeyor – služba CI/CD pro projekty .NET

Používáme také spoustu dalších služeb Microsoftu, jako je Azure a BizSpark.

Proč jsme pro naši aplikaci použili .NET?

Dovolte mi nejprve zde uvést poněkud nepřímou odpověď.

V roce 2013, když náš hlavní vývojář Charles začal pracovat na MVP naší aplikace, věděl .NET se mezi některými začínajícími nadšenci dostával špatný rap. Ale měl v tom jasno:potřeboval rychle poslat něco solidního, aby ověřil trakci . A protože jeho zkušenosti s programováním byly převážně .NET, tato volba technologie dávala smysl. Hromadu, omezení a architekturu znal jako své boty.

Ale v našem rozhodnutí bylo víc než jen kontextové faktory. Tento rámec na straně serveru byl také jedním z nejvyspělejších dostupných:spousta lidí to používalo. Tato popularita znamenala TUNY zabijáckých zdrojů dostupných online (C# a ASP.NET byly nějakou dobu mezi 20 top tagy na Stack Overflow).

A aby toho nebylo málo, Microsoft odváděl – a stále dělá – fantastickou práci s dokumentací ASP.NET. Pravděpodobně nejlépe zdokumentovaný produkt MSFT.

Nyní k objektivnější a aktuálnější odpovědi.

Pro a proti rozhraní Microsoft .NET framework

Nevýhody .NET

K dnešnímu dni může být .NET pro některé vývojáře stále vyloučeno. Pojďme prozkoumat některé z nejčastěji uváděných důvodů:

  • Nutí vás to pracovat na Windows – mnoho vývojářů preferuje jejich moderní kombinaci MacBook/OSX (i když se to může změnit).

  • Visual Studio je obrovské a zaostává ve srovnání s lehkými editory, jako je Atom, VIM nebo eMacs.

  • ASP.NET obecně přichází jako masivní balíček s System.Web a připojené dědictví.

  • Je to starý, „uzavřený“ ekosystém.

  • Noví vývojáři s tím nebudou chtít pracovat.

Profíci .NET

Nyní ke kladům, které s největší pravděpodobností znehodnotí některé zápory:

  • I když se Visual Studio může zdát těžké, zůstává jedním z nejpokročilejších IDE. Může fungovat jako vlastní dokumentace pro nové vývojáře projektu A učinit refaktoring velmi výkonným. A nově vydaný kód Visual Studio řeší problém nadýmání na straně IDE. Oh, přichází také VS pro MAC!

  • C# je kompilovaný, silně typovaný jazyk, díky kterému lépe rozpoznává chyby během kompilace, čímž se vyhne překvapením za běhu. Podle našeho názoru zůstává C# moderním a elegantním jazykem.

  • ASP.NET je velmi vyspělý framework. Jeho půdorys by mohl být menší (většinou opravený v ASP.NET Core), ale víte, že má vše, co potřebujete k dokončení práce.

  • Dokumentace je stále důkladná a snadno dostupná.

  • Nové ASP.NET Core je multiplatformní:můžete použít VS kód na Macu + nasadit aplikaci na kontejneru Docker se systémem Linux. Je to skoro neskutečné.

  • Úplná komunitní edice sady Visual Studio je nyní zdarma a pro jednotlivé vývojáře a projekty s otevřeným zdrojovým kódem.

  • .NET Core řeší problém nadýmání na straně architektury + přináší bonbóny, jako jsou nástroje pro sledování, rychlé načítání a slušné CLI.

"Takže vy se držíte .NET, že?"

Vím, že jsme právě zaznamenali spoustu pozitivních bodů na tabuli pro .NET. Ale to je stále legitimní otázka. Uveďte další kontextový příběh:

Před pár týdny jsme začali hledat nového vývojáře do našeho týmu. Poté, co jsme prošli zajímavými, ale neprůkaznými rozhovory, jsme našli dokonalé profil. Motivace, znalosti SaaS &e-commerce, relevantní zkušenosti... celá sada. Ale během následného úspěšného pohovoru ten chlap nakonec přiznal, že opovrhoval technologiemi Microsoftu, a proto by tu práci nevzal.

Byli jsme ohromeni:naše technická zásoba nás právě stála potenciálně klíčový pronájem. Tedy, jak je zvykem Serious Snipcart Meetings Shromáždili jsme se v temné jeskyni ve vysokých černých hábitech, zapálili svíčky a začali zpochybňovat naše rozhodnutí nadále uctívat bohy .NET.

Za úsvitu, po usilovné debatě, jsme se vynořili s konsensem:Ano, pro naše SaaS zůstaneme u technologií .NET.

Proč? Protože:

  1. Již máme dobře naolejovaný a spolehlivý výrobní kanál. Kompletní přepracování našeho backendu by nebezpečně zhoršilo produktivitu našeho týmu. A přepsat celé naše API bez přidané hodnoty pro naše zákazníky by nebylo chytrým obchodním rozhodnutím.

  2. Jsme přesvědčeni, že naše architektura .NET se v dlouhodobém horizontu rozšíří spolu s naším podnikáním. ASP.NET Core navíc přináší osvěžující vánek svobody pro naše současné i budoucí vývojáře.

  3. Věříme ve výhody vyspělosti a stabilního vývoje C#. Každá nová verze přináší čistší a jednodušší kód. Je to také jeden z prvních jazyků, který integruje async/await koncept, nyní přichází do ES7 a dalších jazyků. C# 6 již nabízí spoustu skvělých věcí a lešení C# 7 zatím vypadá dobře.

  4. Mnoho zajímavých zaměstnanců, na které narazíme, jsou čerství absolventi a .NET je stále jedním z nejvíce vyučovaných frameworků na škole. Microsoft odvedl dobrou práci a umožnil studentům používat jejich nástroje levně – ne-li zdarma. Takoví zaměstnanci by byli v jistém smyslu pro tuto práci předem kvalifikovaní.

Proč a kdy byste měli používat technologie .NET

Nyní víme, že rámec Microsoftu není nejlepším dítětem na vývojářském bloku. Ale víš co? Věříme, že to stejně nakopne pořádně zadek. Zvláště když vidíme, že se objeví osvěžující open source projekt, jako je Wyam, statická sada nástrojů .NET.

Ale dost o nás. Pojďme mluvit o tobě. O tom, proč možná ty měli byste zvážit použití tohoto technologického zásobníku pro spuštění, osobní nebo klientské projekty:

1. Vaše SaaS/firma by mohla mít prospěch ze spouštěcích programů společnosti Microsoft.

Microsoft nabízí velmi atraktivní programy pro začínající podniky využívající jejich technologie. Bizspark je zářným příkladem. Pomůže vám zahájit podnikání bez obav z licenčních poplatků a podobných věcí v prvních letech. MS také nabízí týmové služby Visual Studio zdarma až pro 5 členů.

2. Vaše žízeň po open source bude uhašena.

Doba „černé skříňky“ pro Microsoft je pryč. Oprávněně prosazují open source se značným úsilím. Pokud to s open source myslíte vážně, můžete pomoci a/nebo využít výhody zde!

3. Budete mít k dispozici technologie s osvědčenými a rostoucími výsledky.

Ve světě .NET je spousta dokumentace, zdrojů a inspirativních čísel. To vám a vašemu týmu určitě pomůže v době nouze. Nástroje pro pevný kód jsou dostupné a dobře integrované (testy jednotek, akceptační testy, CI atd.). Budete také těžit z inovací společnosti MSFT, pokud jde o nový zásobník ASP.NET nebo kód VS.

Závěrečná slova

Tady to máte, přátelé:náš oficiální postoj k .NET.

Klíčovým konceptem je, že technologie je prostředkem k dosažení cíle, tečka. Je to tam, takže se můžete do prdele.

Efektivita, efektivita a škálovatelnost:TYTO by měly určovat váš výběr technologického zásobníku. Ne společenský tlak „nového“ a „trendového“. A pro nás .NET byla a stále je tou správnou volbou, jak do toho jít.

Doufám, že se vám příspěvek líbil, ať už s námi souhlasíte nebo ne!

Jo, a určitě nám dejte vědět, pokud si myslíte, že nás můžete přimět změnit názor. Žádná rozhodnutí nejsou ve startupu neměnná. :D

A pamatujte:

Pokud se vám tento příspěvek líbil nebo byl hodnotný, věnujte prosím chvilku sdílejte to na Twitteru . To bychom ocenili. Nevykopáváme naši pozici tady? Odpalte v komentářích. Budeme naslouchat!