Czesc.
Pracowal ktos z was lub moze sam pisal jakis wiekszy projekt w NodeJS? Chcialbym zapytac o wrazenia pracy z czyms wiekszym.
Jak z utrzymaniem wiekszego kodu? Jakies spadki wydajnosci przy wiekszych projektach? Mam w planie system ecommerce w ktorym bedzie mozna zakladac sklepy (tak w skrocie) i zastanawiam sie nad wyborem Node...
Gdyby ktos laskawy sie wypowiedzial jak wrazenia. Bede wdzieczny.
Dzieki!
Duży projekt + język słabo dynamicznie typowany = boom.
Miałem nieprzyjemność pracować na ~3 milionach linii kodu w Pythonie (przynajmniej mocno typowany) i nie życzę największemu wrogowi.
Python słynie z bycia zwięzłym językiem, więc jeśli projekt miał 3 miliony kodu to obstawiam, że był to źle napisany kod w Pythonie.
Pracowal ktos z was lub moze sam pisal jakis wiekszy projekt w NodeJS?
Ciężko mi było się połapać, co który moduł robi i musiałem się pytać co chwila programistę, który to pisał. Zamiast pisać nowe ficzery, próbowałem najpierw zrozumieć w jaki sposób to jest zrobione (a dokumentacja była słaba).
Tylko jak dla mnie to też kwestia overengineeringu. Myślę, że w każdym przeinżynierowanym dużym projekcie byłby podobny problem. Człowiek po prostu nie jest czasem w stanie ogarnąć wszystkiego i zgadywać "co programista, który to pisał miał na myśli".
Często bywa tak, że projekty właśnie dlatego są duże, że są przeinżynierowane i zawierają mnóstwo niepotrzebnych abstrakcji.
Jakies spadki wydajnosci przy wiekszych projektach?
V8 jest szybkie, ale poza tym przecież wydajność to nie jest kwestia tylko języka. Baza danych, czy inne takie...
Zauważyłem, że większość marudzenia dot. JavaScriptu pochodzi od ludzi którzy w każdym innym języku będą pisać kod podobnej jakości i żadne typy i inne konstrukcje im nie pomogą. Pracuję od kilku lat we front-endzie, angażuje się w projekty Node.js'owe i naprawdę nieszczególnie mi ten JS przeszkadza. Pojawiają się np. argumenty "a bo w JS to można używać == i nie jesteś pewien typu danej zmiennej", ale czy koniec końców to języka wina, czy programisty?
Ja programuję w JS i o ile kiedyś broniłem tego języka, bo wkurzało mnie, że inni go wyśmiewali i nie doceniali języka... ale teraz...? Od czasów ES6 i dalej język JS broni się sam, jest tu tyle fajnych ficzerów, że naprawdę pozazdrościć. Co nie zmienia tego, że od czasów "use strict"
chyba nie było jakiejkolwiek zmiany w języku, JavaScript aż do przesady zachowuje zasadę open-closed (czyli jest otwarty na rozszerzenia, ale zamknięty na modyfikację, ponieważ jakakolwiek modyfikacja języka może potencjalnie rozwalić pół internetu).
Co oznacza, że w JavaScripcie mnóstwo rzeczy jest kiepskich ("bad parts") i warto o tym mówić i to wyśmiewać, ew. ostrzegać innych przed tym, albo samemu się dziwić, jak dziwne rzeczy istnieją w tym języku.
Pojawiają się np. argumenty "a bo w JS to można używać == i nie jesteś pewien typu danej zmiennej", ale czy koniec końców to języka wina, czy programisty?
Teoretycznie to ===
jest "lepsze" ale też nie zawsze.
Po mojemu to np. porównując stringi nieznanego pochodzenia (np. z jakiejś zewnętrznej biblioteki) to lepiej użyć ==
bo nigdy nie masz pewności, czy jakaś biblioteka nie tworzy stringów przez new String
albo nie tworzy zwykłych obiektów, do których doczepia metodę toString
. W takich przypadkach ==
zwróci, zgodnie z intuicją true
, natomiast ===
zwróci false
, nawet jeśli napisy są takie same.
Przyszłość to Kotlin.js, Scala.js jeden język programowania do wszystkiego.
Typescript + node.js i można pisać ;)
Mi tylko brakuje Python.js i mam wszystko co potrzebuje do backendu i frontendu.
Szalony Orzeł napisał(a):
Mi tylko brakuje Python.js i mam wszystko co potrzebuje do backendu i frontendu.
i jeszcze brainfuck.js