Šta je novo?

Full-Stack developer - (NE)Moguce?

Mikkin

Poštovan
Učlanjen(a)
29.08.2017
Poruke
16
Poena
54
Pozdrav.

Da li je moguce biti FullStack developer? S' obzirom na to koliko je uznapredovala tehnologija izrade web stranice.

Ja trenutno tezim tome, ucim i clinet i server side.

(fe) - HTML5, CSS3, JS , AngularJS i Twitter Bootstrap
(be) - NodeJS, ExpressJS i MongoDB

Od CMS-ova poceo sam ozbiljnije da se bavim Ghost CMS-om.

U sustini trudim se da naucim svu MEAN stack tehnologiju.
Preterano me ne interesuju ostali jezici, poput Php-a, Python-a itd...

Samo JAVASCRIPT ! :)

Ima li neko da je fullstack developer? I kakvo je vase misljenje, da li moguce postati fullstack developer? :)

Btw. Jedino sta me mnogo muci, i sa cim ne mogu da izadjem na kraj, jeste web dizajn.
Teoriju znam, al kad treba da se upali PS, odaberu boje, fontovi i uradi nesto, mozak blokira. :(
 
Poslednja izmena:
Jedino što NodeJS nije pravi backend, tako da se to baš i ne računa u full-stack onda.

Moraš znati barem i neki "pravi" backend jezik, Java/PHP/Python, itd...
 
Poslednja izmena:
Zašto to? Isto je da li kod interpretira Node.js okruženje ili python interpreter. Programski jezik je programski jezik. Taj kod se izvršava na serveru i to je jedino bitno.
 
Poslednja izmena:
Napisao sam nije "pravi" backend. Da, kod se izvršava na serveru, ali bilo šta što zahteva trunku procesorske snage će raditi dosta loše ako se koristi NodeJS.

Poenta je bila da, ako hoćeš da se razvijaš u full-stack svetu i da se nazivaš Full-Stack developerom, ne možeš znati samo Javascript-driven stvari, već moraš znati i neki jezik koji se ozbiljnije koristi u backendu. Moraš znati da izmodeluješ bazu, itd.

Mada, šta se danas sve podrazumeva pod Full-Stack u "kul" firmama ne bih baš ni da komentarišem.
 
Poslednja izmena:
Dobro, nećemo u raspravu, to za procesorsku snagu ću se složiti.

Takođe smatram da je stvarno potrebno da se zna i nešto pored Node.js, tipa PHP, Python, Go, Ruby, Swift, Scala, etc. Čisto da se uporedi i stekne iskustvo sa različitim tehnologijama. Dakle nešto od ovoga, ne sve.
 
Poslednja izmena:
Btw. Jedino sta me mnogo muci, i sa cim ne mogu da izadjem na kraj, jeste web dizajn.
Teoriju znam, al kad treba da se upali PS, odaberu boje, fontovi i uradi nesto, mozak blokira. :(

To bi od svega navedenog trebalo najmanje da te brine. Na svakom iole ozbiljnom projektu time se bavi dizajner, a ne developer. Tvoje je da na najbolji mogući način preneseš njegov dizajn/viziju u kod.

Ono što bi više trebalo da te brine je vezivanje isključivo za JS. Mnogo je korisnije da proširiš znanje još jedinm jezikom (i filozofijom koja ga prati), nego da vežbaš dizajn, ako već hoćeš da budeš full stack dev.

PHP ima veliku zastupljenost kod nas i sa komercijalne strane i tvoje trenutne vezanosti za skript jezike je verovatno najbolja sledeća opcija za učenje. Ali bi bilo jako pametno u budućnosti se upoznati sa Javom. I kao treća opcija sigurno i Go koji još uvek nije rasprostranjen, ali bi u budućnosti trebalo ozbiljno da raste, pogotovo zbog performansi koje jedu Node.
 
Poslednja izmena:
iskreno ne verujem u te buckurise tipa full stack, ne za web nego i za bilo sta drugo u zivotu
ako hoces da u necemu budes stvarno dobar, to ne moze biti 12 stvari istovremeno. Samo za php ti trebaju godine ucenja da bi bio stvarno dobar, za frontend jos toliko, za javu kontam i vise od svega toga, a nazvati se full-stack bez znanja php-a i jave je u najmanju ruku neozbiljno
 
Zašto bi bilo neozbiljno? 2017. godina je i ko sad krene da uči da bude "full-stack" programer može to da postigne, a da ni ne pogleda u PHP ili Javu, ima brdo opcija i koju god da odabere ako joj se posveti može u njoj da bude veoma dobar, ništa mu neće faliti.
 
pa ok, onda da prepravimo definiciju full stack developera?
po meni nazivati se full stack a ne biti u mogucnosti da napises trunku php coda npr. je ne samo neozbiljno nego cak i bezobrazno, ja ne znam kako neko moze biti full stack bez toga i koji to tacno CMS takav developer moze da izgura WP npr. da ne pricamo o Magentu, to je vec zaista smesno
 
Ne kontam. Nigdje ne piše da full stack programer mora da zna PHP ili javu, tu ulogu definiše koji dio posla obavlja, a ne alatka koja se koristi da se taj posao završi. Znati PHP i javu je stvarno veoma korisno, ali niko ne kaže da ne možeš biti izvrstan full stack programer, a da čak ni nemaš dodira sa tim jezicima, pogotovo ako neko kreće da uči sada pa i nadalje kada je sve manje i manje potreba i imperativ da se zna PHP.

Mada kod nas je PHP svetinja dok ostali server side jezici kupe mrve tako da razumijem takav stav.
 
Poslednja izmena:
recimo da ja (mozda gresim) ali pod full-stack podrazumevam nekoga ko moze da razvije ozbiljan sajt (recimo magento shop) sasvim sam kada bi mu neko dao dovoljno vremena naravno, a ne vidim nacin da je to moguce ako se ignorise php
isto tako ne razumem kako mislis "kod nas je php svetinja" :) ovo nema veze sa konkretnom zemljom vec sa tim da li imas sposobnost da odradis sve sto ti se da ili ne
 
recimo da ja (mozda gresim) ali pod full-stack podrazumevam nekoga ko moze da razvije ozbiljan sajt (recimo magento shop) sasvim sam kada bi mu neko dao dovoljno vremena naravno, a ne vidim nacin da je to moguce ako se ignorise php
isto tako ne razumem kako mislis "kod nas je php svetinja" :) ovo nema veze sa konkretnom zemljom vec sa tim da li imas sposobnost da odradis sve sto ti se da ili ne

Ponavljam 10. put, možeš da napraviš kakav god hoćeš sajt i pri tome da ignorišeš PHP kao da ni ne postoji.
 
mozes i 11-i put nije problem, ali ne vidim cinjenice nigde :)
dakle, ako navedem primer magento sajta, mozes li mi reci kako je moguce da napravi taj sajt bez php znanja? cak ni frontend ne moze raditi bez toga, o bekendu da ne pricamo, pa eto, ako kazes "kakav god hoces sajt" podjimo od ovog primera
 
Ozbiljan sajt je Twitter, koristi Ruby i Javu (JRuby).
 
mozes i 11-i put nije problem, ali ne vidim cinjenice nigde :)
dakle, ako navedem primer magento sajta, mozes li mi reci kako je moguce da napravi taj sajt bez php znanja? cak ni frontend ne moze raditi bez toga, o bekendu da ne pricamo, pa eto, ako kazes "kakav god hoces sajt" podjimo od ovog primera

Popularni sajtovi i tehnologije koje koriste

Pa sad ako google.com, microsoft.com, youtube.com i slične ne smatraš ozbiljnim i kompleksnim sajtovima onda nema svrhe da nastavljamo. Čak i Yahoo kao i mnogi sajtovi prelaze na druge jezike sa PHP-a, toliko o tome kako bez njega ne može.

Server side scripting, ima i lista jezika takođe mada banalno mi je da se na jednom IT forumu o ovome mora raspravljati.
 
Poslednja izmena:
Ozbiljan sajt je Twitter, koristi Ruby i Javu (JRuby).

Twitter nije ozbiljan sajt (i to nije sajt vec servis) jer ne pravi profit. On je impozantan sa tehnickog stanovista, ali njegova kompleksnost se ne ogleda u pukom programiranju, vec u mnogobrojnim slojevima koje obican korisnik ne vidi, ali koji tu postoje. To deljenje na ozbiljne i neozbiljne je totalno besmisleno i neprecizno.

Servisi i "sajtovi" mogu da se dele po tehnickoj i biznis kompleksnosti, a mnogobrojni servisi koje mi svakodnevno koristimo nisu, sa biznis stanovista, ozbiljni jer ne donose profit.

Samo oni koji ne razumeju biznis komponentu se loze na fensi tehnologije i dele tehnicku implementaciju na "vau" i "zastarelo". Istina je da se problemi resavaju adekvatnim alatima, a ne obrnuto. Niko ne bira prvo alat pa onda analizira problem, tj. ne mozes sa Phillips srafcigerom nikako da odvrnes okasti sraf, iako je Phillips srafciger "cool" tehnologija (recimo).

Takodje ne postoji savrsena tehnologija tj. programski jezik - svaki ima svoje prednosti i mane ali sta ces da koristis zavisi od problema sa kojim se suocavas tj, koji treba da resis, kao i da li sa manama mozes da zivis na duzi vremenski period, racunajuci da ces u nekom komentu sigurno prerasti trenutno tehnicko resenje i imati potrebe za necim drugim. To se zove planiranje, koje ovde mnogi ispustaju iz vida.

Trendi i fensi tehnologije su cool, ali ima i druga strana medalje - nekada je mnogo vaznije izbaciti proizvod na trziste sto pre kako bi mogao da budes trzisno prisutan i kako bi mogao da ostvaris priliv sredstava ne bi li se odrzao u zivotu i nastavio razvoj dalje, a to sve je jako cesto mnogo lakse i, sa biznis stanovista, jeftinije izvesti koriscenjem ne-cool tehnologija (PHP je ocito postato totalno ne-cool). Na stranu proverenost, podrzanost, velicina komune i drugi bitni parametri koji su vazni kod odabira nekog programskog jezika / frejmvorka.
 
Ne vidim poentu čemu ova rasprava.

PHP je prvi jezik sa kojim sam se susreo i lično ga ne podnosim, ali ne mogu da ignorišem činjenicu da je zastupljenost kod nas ogromna, u svetu mu popularnost pada, ali je daleko od otpisanog jezika. Sa komercijalne strane itekako ima razloga da ga neko ubaci u svoj portfolio.

Da li može da se izbegne, može, ali u svakom slučaju je lukrativnije znati njega nego npr. Go, koji lično volim, ali ta preferncija neće učiniti da svi odjednom pređu na njega.

Suština je da se ne treba ograničavati jednim jezikom, treba malo proširiti vidike. Po meni Java i Go su super dopuna uz JS. Java kao opcija robusnija rešenja i Go kao nešto novo što bi moglo uzeti fin deo kolača. Python i Ruby su isto kul, ali je ponuda poslova suženija u odnosu na trio JS/Java/PHP.

Da se vratim na postavljača teme, programiranje nije samo dobro poznavanje jezika, ko zna na koliko jezika i frejmvorka ćeš morati da se prilagodiš u narednih 10 godina. Zarobiti se u jednom jeziku, a hteti da postaneš, ne full stack developer, nego bilo kakav developer, je vrlo loše.

Nije baš vezano za temu, ali me je dobro nasmejalo kad sam video sliku pre neki dan.

 
Ovo se u potpunosti slažem, narod kao ovce, a sad je Node.js jedan od velikih torova. PHP nije bez razloga postao "not-cool". Mada jezik kao alatka nije toliko ni bitan koliko kako se ta alatka koristi i uklapa u cjelokupan sistem.

Iskreno i sam koristim Node.js, PHP i ponekad Python, ali nešto me u zadnje vrijeme zainteresovao Go. Recimo Swift mi se sviđa, ali pogodite šta me odvlači od njega.
 
Poslednja izmena:
Jel ocekujete da full stack radi i dizajn? To vec nije developer posao, ali jeste deo posla da se "full" odradi. Sto se tice pitanja, po meni, prvo uciti back-end, front se moze uvek lakse outsource-ovati, kupiti gotov, ili upakovati u neki template. Obavezno dobro nauciti SQL i neki reporting tool, posebno ako su u pitanju LOB web app.
 
Postoji suštinska razlika između PHP i Node servera. PHP code se izvršava samo dok postoji neki request. Posle toga se više ništa ne dešava.
Node server je stalno aktivan.
Npr, ako treba realtime komunikacija kroz sajt PHP je tu nemoćan. Ako treba vršiti neke obrade podataka bez korisničkog zahteva, PHP je opet nemoćan (moraju trikovi sa cron jobs).
Node sa druge strane nudi sve to. Brži je od PHP-a i omogućava realtime komunikaciju. Mana sa node-om je sigurnost. U opticaju je veliki broj modula, a neki od modula nisu sigurni.

Sent from my Nexus 6P using Tapatalk
 
Upravo to yooyo.

Koga interesuje više o tome neka traži "non blocking / async i/o". Ako se ne varam to je jedna od prvih rečenica kada uđete na njihov sajt. Slična semantička razlika tj. "single-threaded async vs multithreaded" je povučena još iz poređenja apache-a i nginx-a kako je i sam autor Node.js-a rekao na prvoj konferenciji.



Slažem se i za dio oko sigurnosti, ko prati JS svijet i šta se dešava vidi koliko je tu revolta protiv NPM-a i njihove politike.
 
Poslednja izmena:
Da, npm je bas imao nekoliko pehova...
 
Moze u PHP da se napise multithreaded daemon, ako nekog zanima.

https://github.com/krakjoe/pthreads

Technical Features

High Level Threading
Synchronization
Worker Threads
Thread Pools
Complete Support for OO - ie. traits, interfaces, inheritance etc
Full read/write/execute support for Threaded objects

Are you serious ?

Absolutely, this is not a hack, we don't use forking or any other such nonsense, what you create are honest to goodness posix threads that are completely compatible with PHP and safe ... this is true multi-threading :)

SAPI Support

pthreads v3 is restricted to operating in CLI only: I have spent many years trying to explain that threads in a web server just don't make sense, after 1,111 commits to pthreads I have realised that, my advice is going unheeded.

So I'm promoting the advice to hard and fast fact: you can't use pthreads safely and sensibly anywhere but CLI.

Thanks for listening ;)

PHP:
<?php
/*
* @NOTE
*	RESOURCES ARE BEING TRIED OUT, THIS MAY CRASH OR KILL THE EXECUTOR OF THE SCRIPT: NOT MY FAULT
*
*	It's pretty clear that people want resources to work, and I cannot deny it would be useful.
*	Officially, resources are unsupported, if it doesn't work there is NOTHING I can do about it.
*	I do NOT have the time to make every kind of resource safe, or ensure compatibility.
*	I can apply some cleverness to make sure resources are destroyed by whoever creates them, that is ALL.
*	In the case of sockets, this appears to work, the code below ran all day on pthreads.org without interruption.
*	AGAIN: 	If this does not work, there is NOTHING more I can do. 
			If a particular type of resource wigs out, there is NOTHING I can do.
			If this kills you, horribly, there is NOTHING I can do.
*/
class Client extends Thread {
	public function __construct($socket){
		$this->socket = $socket;
		$this->start();
	}
	public function run(){
		$client = $this->socket;
		if ($client) {
			$header = 0;
			while(($chars = socket_read($client, 1024, PHP_NORMAL_READ))) {
				$head[$header]=trim($chars);
				if ($header>0) {
					if (!$head[$header] && !$head[$header-1])
						break;
				}
				$header++;
			}
			foreach($head as $header) {
				if ($header) {
					$headers[]=$header;	
				}
			}
			$response = array(	
				"head" => array(
					"HTTP/1.0 200 OK",
					"Content-Type: text/html"
				), 
				"body" => array()
			);
			
			socket_getpeername($client, $address, $port);
		
			$response["body"][]="<html>";
			$response["body"][]="<head>";
			$response["body"][]="<title>Multithread Sockets PHP ({$address}:{$port})</title>";
			$response["body"][]="</head>";
			$response["body"][]="<body>";
			$response["body"][]="<pre>";
			foreach($headers as $header)
				$response["body"][]="{$header}";
			$response["body"][]="</pre>";
			$response["body"][]="</body>";
			$response["body"][]="</html>";
			$response["body"] = implode("\r\n", $response["body"]);
			$response["head"][] = sprintf("Content-Length: %d", strlen($response["body"]));
			$response["head"] = implode("\r\n", $response["head"]);
				
			socket_write($client, $response["head"]);
			socket_write($client, "\r\n\r\n");
			socket_write($client, $response["body"]);
					
			socket_close($client);
		}
	}
}
/* ladies and gentlemen, the world first multi-threaded socket server in PHP :) */
$server = socket_create_listen(13000);
while(($client = socket_accept($server))){
	$clients[]=new Client($client);
	/* we will serve a few clients and quit, to show that memory is freed and there are no errors on shutdown (hopefully) */
	/* in the real world, do something here to ensure clients not running are destroyed */
	/* the nature of a socket server is an endless loop, 
		if you do not do something to explicitly destroy clients you create this may leak */
}
/* that is all */
?>
 
Poslednja izmena:
Ozbiljan sajt je Twitter, koristi Ruby i Javu (JRuby).

Твитер не користи JRuby већ Scala-у. Њихов прелазак са Руби на Скалу је добро познат ствар.
 
Nazad
Vrh Dno