🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51779

Re: dlaczego firstChild oraz childNodes[0] mam undefined?

#51779
From: Cezary Tomczyk
Date: Thu, 23 Mar 2017 09:41
67 lines
4565 bytes
On 23/03/2017 01:27, Borys Pogoreło wrote:
> Dnia Wed, 22 Mar 2017 13:51:39 +0100, Cezary Tomczyk napisał(a):
>
>> Taki przykład z życia wzięty: do pewnego stopnia korzystałem z Grunt-a i
>> Gulp-a, ale im bardziej miałem niestandardowy build process, tym większa
>> frustracja była z korzystania z Grunt-a/Gulp-a (hackowanie, brak
>> pluginów, brak aktualizacji pluginów, itd.
>
> A jaki miałeś problem z Gulpem? Grunt faktycznie nie jest zbyt elastyczny z
> uwagi na deklaratywne podejście, ale w Gulpie możesz napisać prawie
> wszystko, to w końcu zwykły JS + strumienie.

No właśnie dlatego, że mam dostępny Promise, to Gulp nie jest mi potrzebny.

>> Patrz:
>> http://www.ctomczyk.pl/why-i-switched-to-only-nodejs-npm-and-stopped-using-grunt/767/).
>
> Aleś wykombinował, ten wynalazek w Gulpie miałby kilka linii. Choć czytałem
> już o takim, co uniksowe Makefile używa w roli build procesu dla www. Niby
> "co kto lubi", ale spróbuj takie rozwiązanie przejąć po kimś...

To żadna kombinacja. Przypatrz się temu dokładnie. Bierzesz pakiet npm i 
używasz go całkiem normalnie: wejście -> wyjście. Nie ma tam żadnej 
magii i przejęcie tego przez kogoś innego jest naprawdę proste. Ba! Już 
kilka build-ów napisałem, zostały przejęte i nie było z tym żadnego 
problemu. Co więcej, raz napisany build działa przez bardzo długi czas i 
nie trzeba do niego zaglądać co rusz ;-) No, poza aktualizacjami 
pakietów npm, jeśli ktoś chce.

A jeśli ktoś ma problem ze zrozumieniem kodu, który jest w buildzie, to 
nie wiem, co mogę o tym sądzić.

Osobiście, po jakimś czasie doszedłem do wniosku, że Grunt/Gulp za 
bardzo ograniczają mnie i w zasadzie zdefiniowanie i napisanie kroków do 
build-a jest banalnie proste:

1. Definiujesz co chcesz osiągnąć.
2. Dobierasz sobie pakiet npm.
3. Piszesz kilka linijek kodu, by przekazać parametry do pakietu npm i tyle.

Każde zadanie jest niezależne i kolejkę ustawiam sobię zwykłym Promisem. 
Rzecz jasna - są plusy i minusy. Do plusów zaliczam:

* Usuwam niepotrzebną zależność od Grunt-a/Gulp-a
* Nie muszę czekać, aż autor pakietu dla Grunt-a/Gulp-a uaktualni mi go
* Nie muszę nic hackować, bo albo korzystam z gotowych pakietów npm 
(jeśli są wystarczające), albo piszę sam.
* Do konkretnego zadania mogę wybrać jakikolwiek pakiet npm, spełniający 
moje wymagania. Mając Grunt-a/Gulp-a muszę brać pod uwagę to, że pakiet 
był specjalnie dla G/G.

Do minusów:

* Trzeba przeczytać i zrozumieć kod :D
* Więcej nie pamiętam, ale możesz dopisać kolejne punkty tutaj ;-)

> Widzę, że w komentarzach Ci napisali w sumie to samo ;)

Zdania są podzielone i to jest normalne. Nie oczekuję tego, iż G/G 
zostanie porzucony czy nagle wszyscy przestaną z tego korzystać. 
Zaprezentowałem swój punkt widzenia.

Akceptuję odmienne zdanie ;-)

-- 
Cezary Tomczyk
http://www.ctomczyk.pl/
Technical Details
Message-ID: <ob057n$1vkd$1@csiph.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!xmission!csiph.com!.POSTED.204-73-239-109.cust.centrio.cz!not-for-mail
References: <oaaiu9$jmk$1@news.icm.edu.pl> <oaauv5$1i7t$1@csiph.com> <5d210841-ac34-4a0b-9981-9fe8d5e61d4c@googlegroups.com> <1qyr04lt73a9k.2i4h5jx0p963$.dlg@40tude.net> <a5966894-febc-4a31-ba2c-12eb96499852@googlegroups.com> <20170316120955.4c2fcf01@pe.regionet.pl> <f86bfc66-ce12-4009-9ad7-46fdb248d93d@googlegroups.com> <slrnocojql.2ov.wojciech.bancer@pl-test.org> <07b85c99-5512-4bf8-a85b-32e2693318a2@googlegroups.com> <1bw0p3palg9q0$.1iffa42jnbl49.dlg@40tude.net> <oaql97$10e8$1@csiph.com> <1exqgczs770q5.1ncnughms5d0a.dlg@40tude.net> <oats0s$8as$1@csiph.com> <t2bme4paw8if.1ufmvhjyj9qn1.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!xmission!csiph.com!.POSTED.204-73-239-109.cust.centrio.cz!not-for-mail
From: Cezary Tomczyk <cezary.tomczyk@gmail.com>
Newsgroups: pl.comp.lang.javascript
Subject: Re: dlaczego firstChild oraz childNodes[0] mam undefined?
Date: Thu, 23 Mar 2017 10:41:11 +0100
Organization: csiph.com Internet News Service
Message-ID: <ob057n$1vkd$1@csiph.com>
References: <oaaiu9$jmk$1@news.icm.edu.pl> <oaauv5$1i7t$1@csiph.com> <5d210841-ac34-4a0b-9981-9fe8d5e61d4c@googlegroups.com> <1qyr04lt73a9k.2i4h5jx0p963$.dlg@40tude.net> <a5966894-febc-4a31-ba2c-12eb96499852@googlegroups.com> <20170316120955.4c2fcf01@pe.regionet.pl> <f86bfc66-ce12-4009-9ad7-46fdb248d93d@googlegroups.com> <slrnocojql.2ov.wojciech.bancer@pl-test.org> <07b85c99-5512-4bf8-a85b-32e2693318a2@googlegroups.com> <1bw0p3palg9q0$.1iffa42jnbl49.dlg@40tude.net> <oaql97$10e8$1@csiph.com> <1exqgczs770q5.1ncnughms5d0a.dlg@40tude.net> <oats0s$8as$1@csiph.com> <t2bme4paw8if.1ufmvhjyj9qn1.dlg@40tude.net>
Mime-Version: 1.0
Injection-Date: Thu, 23 Mar 2017 09:41:11 +0000 (UTC)
Injection-Info: csiph.com; posting-host="204-73-239-109.cust.centrio.cz:109.239.73.204"; logging-data="65165"; mail-complaints-to="admin@kev009.com"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
In-Reply-To: <t2bme4paw8if.1ufmvhjyj9qn1.dlg@40tude.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit