Discussion:
dlaczego firstChild oraz childNodes[0] mam undefined?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Jivanmukta
2017-03-15 05:20:08 UTC
Permalink
Mam na stronie:

<div id="client_mobile_field">
<div class="label"><label class="obligatory">Telefony
komórkowe:</label></div>
<div class="control">
<div>
<?php echo my_form_input('client_mobile1',
my_set_value('client_mobile1', $fullAnnouncementNo, $announcement),
'id="client_mobile1" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile1'); ?>
</div>
<div>
<?php echo my_form_input('client_mobile2',
my_set_value('client_mobile2', $fullAnnouncementNo, $announcement),
'id="client_mobile2" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile2'); ?>
</div>
</div>
<div class="tip">...<b>albo</b> telefon komórkowy
(9-cyfrowy)...</div>
</div>

Podczas obsługi zdarzenia onfocus elementu client_mobile1 potrzebuję
dobrać się do jedo etykiety. Robię to tak:

function divLabelOf(elem) {
if (elem) {
var p = elem;
while (p.className != 'control') {
p = p.parentNode;
}
p = p.parentNode;
alert("div " + p.id);
alert("firstChild " + p.firstChild.id);
alert("childNodes[0] " + p.childNodes[0].id);
return p.firstChild; // powinno być div
}
return null;
}

Wyświetla mi się:

div client_mobile_field
firstChild undefined
childNodes[0] undefined

Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za
podpowiedź.

---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Cezary Tomczyk
2017-03-15 08:45:23 UTC
Permalink
Post by Jivanmukta
<div id="client_mobile_field">
<div class="label"><label class="obligatory">Telefony
komórkowe:</label></div>
<div class="control">
<div>
<?php echo my_form_input('client_mobile1',
my_set_value('client_mobile1', $fullAnnouncementNo, $announcement),
'id="client_mobile1" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile1'); ?>
</div>
<div>
<?php echo my_form_input('client_mobile2',
my_set_value('client_mobile2', $fullAnnouncementNo, $announcement),
'id="client_mobile2" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile2'); ?>
</div>
</div>
<div class="tip">...<b>albo</b> telefon komórkowy
(9-cyfrowy)...</div>
</div>
Podczas obsługi zdarzenia onfocus elementu client_mobile1 potrzebuję
function divLabelOf(elem) {
if (elem) {
var p = elem;
while (p.className != 'control') {
p = p.parentNode;
}
p = p.parentNode;
alert("div " + p.id);
alert("firstChild " + p.firstChild.id);
alert("childNodes[0] " + p.childNodes[0].id);
return p.firstChild; // powinno być div
}
return null;
}
div client_mobile_field
firstChild undefined
childNodes[0] undefined
Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za
podpowiedź.
Sprawdź, jaki obiekt kryje się pod p.firstChild. Może zamiast
p.firstChild użyj q.querySelector('tutaj CSS selector do żądanego
elementu').

A poza tym, zrezygnuj z onfocus i onblur inline i skorzystaj z delegacji
zdarzeń (event delegation):

https://bfkot.wordpress.com/2010/09/02/event-delegation-delegowane-nasluchy-czyli-wydarzenia-w-delegacji-czesc-1/
--
Cezary Tomczyk
https://www.aslint.org/ - walidacja Accessibility
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
zpksoft
2017-03-15 15:29:09 UTC
Permalink
Post by Cezary Tomczyk
Post by Jivanmukta
<div id="client_mobile_field">
<div class="label"><label class="obligatory">Telefony
komórkowe:</label></div>
<div class="control">
<div>
<?php echo my_form_input('client_mobile1',
my_set_value('client_mobile1', $fullAnnouncementNo, $announcement),
'id="client_mobile1" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile1'); ?>
</div>
<div>
<?php echo my_form_input('client_mobile2',
my_set_value('client_mobile2', $fullAnnouncementNo, $announcement),
'id="client_mobile2" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile2'); ?>
</div>
</div>
<div class="tip">...<b>albo</b> telefon komórkowy
(9-cyfrowy)...</div>
</div>
Podczas obsługi zdarzenia onfocus elementu client_mobile1 potrzebuję
function divLabelOf(elem) {
if (elem) {
var p = elem;
while (p.className != 'control') {
p = p.parentNode;
}
p = p.parentNode;
alert("div " + p.id);
alert("firstChild " + p.firstChild.id);
alert("childNodes[0] " + p.childNodes[0].id);
return p.firstChild; // powinno być div
}
return null;
}
div client_mobile_field
firstChild undefined
childNodes[0] undefined
Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za
podpowiedź.
Sprawdź, jaki obiekt kryje się pod p.firstChild. Może zamiast
p.firstChild użyj q.querySelector('tutaj CSS selector do żądanego
elementu').
A poza tym, zrezygnuj z onfocus i onblur inline i skorzystaj z delegacji
https://bfkot.wordpress.com/2010/09/02/event-delegation-delegowane-nasluchy-czyli-wydarzenia-w-delegacji-czesc-1/
--
Cezary Tomczyk
https://www.aslint.org/ - walidacja Accessibility
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
Spodobało mi się to w art. do którego dałeś link:

<cytat>
1. Podstawowy sposób dodawania nasłuchów
$(document).ready(function() {
$('.clickable-div').click(nasluch_1);
});
//rownowazny zapis
$(document).ready(function() {
$('.clickable-div').click(nasluch_1);
});
</cytat>

:-)

Paweł
zpksoft
2017-03-15 15:38:08 UTC
Permalink
Post by Cezary Tomczyk
Post by Jivanmukta
<div id="client_mobile_field">
<div class="label"><label class="obligatory">Telefony
komórkowe:</label></div>
<div class="control">
<div>
<?php echo my_form_input('client_mobile1',
my_set_value('client_mobile1', $fullAnnouncementNo, $announcement),
'id="client_mobile1" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile1'); ?>
</div>
<div>
<?php echo my_form_input('client_mobile2',
my_set_value('client_mobile2', $fullAnnouncementNo, $announcement),
'id="client_mobile2" maxlength="16" size="16" style="width: 16ex"
class="mobile" onfocus="onFocusElement(this.id);"
onblur="onBlurElement(this.id);"'),
form_error('client_mobile2'); ?>
</div>
</div>
<div class="tip">...<b>albo</b> telefon komórkowy
(9-cyfrowy)...</div>
</div>
Podczas obsługi zdarzenia onfocus elementu client_mobile1 potrzebuję
function divLabelOf(elem) {
if (elem) {
var p = elem;
while (p.className != 'control') {
p = p.parentNode;
}
p = p.parentNode;
alert("div " + p.id);
alert("firstChild " + p.firstChild.id);
alert("childNodes[0] " + p.childNodes[0].id);
return p.firstChild; // powinno być div
}
return null;
}
div client_mobile_field
firstChild undefined
childNodes[0] undefined
Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za
podpowiedź.
Sprawdź, jaki obiekt kryje się pod p.firstChild. Może zamiast
p.firstChild użyj q.querySelector('tutaj CSS selector do żądanego
elementu').
A poza tym, zrezygnuj z onfocus i onblur inline i skorzystaj z delegacji
https://bfkot.wordpress.com/2010/09/02/event-delegation-delegowane-nasluchy-czyli-wydarzenia-w-delegacji-czesc-1/
--
Cezary Tomczyk
https://www.aslint.org/ - walidacja Accessibility
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
Dodam jeszcze że niezbyt inteligentny jest ten kod. Po co tak motać prosty sznurek?

Przecież wystarczy napisać:

document.onclick = function(e){

e = e || window.event;
var t = e.target || e.srcElement;
n=t.id || t.className;
if (!n) return;
//i teraz obsługa naszej aplikacji:

if (n=='id_diva1') {...}
else if (n=='id_elementu_span1') {...}
else ...


Ot i cała filozofia. Jeżeli dynamicznie wczytamy jakiś element np. div o określonym id albo nadamy mu dynamicznie id, albo będziemy chcieli obsłużyć dowolny element danej klasy to kod będzie dynamicznomagicznie działał.


Paweł
Borys Pogoreło
2017-03-15 23:54:05 UTC
Permalink
Post by zpksoft
Dodam jeszcze że niezbyt inteligentny jest ten kod. Po co tak motać prosty sznurek?
On przede wszystkim jest przestarzały, to artykuł sprzed blisko 7 lat.
Wszystkie użyte tam funkcje już dawno zostały zastąpione.
Post by zpksoft
document.onclick = function(e){
e = e || window.event;
var t = e.target || e.srcElement;
n=t.id || t.className;
if (!n) return;
if (n=='id_diva1') {...}
else if (n=='id_elementu_span1') {...}
else ...
Po to się używa frameworków, by nie klepać ręcznie całego tego śmietnika.
Post by zpksoft
Ot i cała filozofia. Jeżeli dynamicznie wczytamy jakiś element np. div o określonym id albo nadamy mu dynamicznie id, albo będziemy chcieli obsłużyć dowolny element danej klasy to kod będzie dynamicznomagicznie działał.
jQuery.on() też tak działa. Stare jQuery.delegate() również.
--
Borys Pogoreło
borys(#)leszno,edu,pl
zpksoft
2017-03-16 07:49:40 UTC
Permalink
Post by Borys Pogoreło
Post by zpksoft
document.onclick = function(e){
e = e || window.event;
var t = e.target || e.srcElement;
n=t.id || t.className;
if (!n) return;
if (n=='id_diva1') {...}
else if (n=='id_elementu_span1') {...}
else ...
Po to się używa frameworków, by nie klepać ręcznie całego tego śmietnika.
ciach> --
Borys Pogoreło
borys(#)leszno,edu,pl
Punkt widzenia.
Ja to widzę inaczej. Żeby nie pisać tych kilku linijek kodu mam dołączyć cały framework? To jest dopiero śmietnik z tysiącem linijek zbędnego kodu.

Paweł
rePeter
2017-03-16 11:09:55 UTC
Permalink
Thu, 16 Mar 2017 00:49:40 -0700 (PDT)
Post by zpksoft
Post by Borys Pogoreło
Post by zpksoft
document.onclick = function(e){
e = e || window.event;
var t = e.target || e.srcElement;
n=t.id || t.className;
if (!n) return;
if (n=='id_diva1') {...}
else if (n=='id_elementu_span1') {...}
else ...
Po to się używa frameworków, by nie klepać ręcznie całego tego śmietnika.
Ja to widzę inaczej. Żeby nie pisać tych kilku linijek kodu mam dołączyć cały
framework? To jest dopiero śmietnik z tysiącem linijek zbędnego kodu.
Miałbyś rację, gdyby kod kończył się na tych kilku linijkach i potrzebował jednej czy
dwóch funkcjonalności. Ale to już raczej nie te czasy.
--
Piotr Grzegorzyca pozdrawia

jedenaste: Nie spamuj
zpksoft
2017-03-16 13:52:06 UTC
Permalink
Post by rePeter
Thu, 16 Mar 2017 00:49:40 -0700 (PDT)
Post by zpksoft
Post by Borys Pogoreło
Post by zpksoft
document.onclick = function(e){
e = e || window.event;
var t = e.target || e.srcElement;
n=t.id || t.className;
if (!n) return;
if (n=='id_diva1') {...}
else if (n=='id_elementu_span1') {...}
else ...
Po to się używa frameworków, by nie klepać ręcznie całego tego śmietnika.
Ja to widzę inaczej. Żeby nie pisać tych kilku linijek kodu mam dołączyć cały
framework? To jest dopiero śmietnik z tysiącem linijek zbędnego kodu.
Miałbyś rację, gdyby kod kończył się na tych kilku linijkach i potrzebował jednej czy
dwóch funkcjonalności. Ale to już raczej nie te czasy.
--
Piotr Grzegorzyca pozdrawia
jedenaste: Nie spamuj
Nie te czasy powiadasz? Dobrze ze dodałeś "raczej".
Obserwuję notoryczne wytaczanie armat na wróble. Na stronach nic się nie dzieje a dołączonych "frameworków" bez liku "bo tak wygląda profesjonalnie".

Niech każdy myśli po swojemu. Tak jest ok. Czasami korzystam z procedur znalezionych w necie robiących ciekawe rzeczy. Reszta jest tak prymitywnie prosta że nie miałem jeszcze potrzeby stosowania np. jquery. A piszę aplikacje biznesowe o różnorodnych funkcjach.

Paweł

dwunaste: Myśl samodzielnie
rePeter
2017-03-16 14:07:08 UTC
Permalink
Thu, 16 Mar 2017 06:52:06 -0700 (PDT)
Post by zpksoft
Post by rePeter
Thu, 16 Mar 2017 00:49:40 -0700 (PDT)
--
Piotr Grzegorzyca pozdrawia
jedenaste: Nie spamuj
Obserwuję notoryczne wytaczanie armat na wróble. Na stronach nic się nie dzieje a
dołączonych "frameworków" bez liku "bo tak wygląda profesjonalnie".
To druga skrajność.
Post by zpksoft
dwunaste: Myśl samodzielnie
Trzynaste: Tnij sygnatury ;-)
(w zasadzie czytnik powinien)
--
Piotr Grzegorzyca pozdrawia


jedenaste: Nie spamuj
PawelS cbrbob(at)wbcd(dot)pl
2017-03-17 19:21:54 UTC
Permalink
[...]
Post by zpksoft
Post by rePeter
Post by zpksoft
Post by Borys Pogoreło
Po to się używa frameworków, by nie klepać ręcznie całego tego śmietnika.
Ja to widzę inaczej. Żeby nie pisać tych kilku linijek kodu mam dołączyć cały
framework? To jest dopiero śmietnik z tysiącem linijek zbędnego kodu.
Miałbyś rację, gdyby kod kończył się na tych kilku linijkach i potrzebował jednej czy
dwóch funkcjonalności. Ale to już raczej nie te czasy.
--
Piotr Grzegorzyca pozdrawia
jedenaste: Nie spamuj
Nie te czasy powiadasz? Dobrze ze dodałeś "raczej".
Obserwuję notoryczne wytaczanie armat na wróble. Na stronach nic się nie dzieje a dołączonych "frameworków" bez liku "bo tak wygląda profesjonalnie".
W rzeczy samej, również dołączam się do powyższego,
ale w nieco innym aspekcie unikania stosowania frameworków:
dzieciaki korzystające z ton frameworków podsłuchały
i nauczyły się od kogoś magicznego: SOA # 1
niestety, nie wszędzie zawsze można mieć naj.. naj... najnowszą przeglądarkę,
czego stety efektem jest, że strona nie wyświetla się prawidłowo,
bo jquery działa tylko u twórcy na jego jedynej słusznej przeglądarce
(oraz całej podobnej do twórcy rodzinie).
Post by zpksoft
Niech każdy myśli po swojemu. Tak jest ok. Czasami korzystam z procedur znalezionych w necie robiących ciekawe rzeczy. Reszta jest tak prymitywnie prosta że nie miałem jeszcze potrzeby stosowania np. jquery. A piszę aplikacje biznesowe o różnorodnych funkcjach.
Paweł
dwunaste: Myśl samodzielnie
Wojciech Bancer
2017-03-17 21:11:51 UTC
Permalink
On 2017-03-17, PawelS cbrbob(at)wbcd(dot)pl <***@email.org> wrote:

[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
niestety, nie wszędzie zawsze można mieć naj.. naj... najnowszą przeglądarkę,
czego stety efektem jest, że strona nie wyświetla się prawidłowo,
bo jquery działa tylko u twórcy na jego jedynej słusznej przeglądarce
(oraz całej podobnej do twórcy rodzinie).
Konkretne biblioteki/frameworki mają opisane wsparcie na konkretnych
przeglądarkach. Własnoręcznie dziergany kod nie ma takiego wsparcie i musi być
własnoręcznie wytestowany.

Na 1000 przypadków błedów może jeden będzie błędem frameworka, a nie programisty.
Więc jeszcze raz, czemu mam bardziej ufać komuś kto nie chce użyć frameworka,
niż zespołowi ludzi który poświęca mnóstwo czasu i wiedzy by dopracować jakieś
narzędzie? Bo ten jeden programista uważa że jest bardziej nieomylny? :)
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-03-18 14:37:33 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
niestety, nie wszędzie zawsze można mieć naj.. naj... najnowszą przeglądarkę,
czego stety efektem jest, że strona nie wyświetla się prawidłowo,
bo jquery działa tylko u twórcy na jego jedynej słusznej przeglądarce
(oraz całej podobnej do twórcy rodzinie).
Konkretne biblioteki/frameworki mają opisane wsparcie na konkretnych
przeglądarkach. Własnoręcznie dziergany kod nie ma takiego wsparcie i musi być
własnoręcznie wytestowany.
Na 1000 przypadków błedów może jeden będzie błędem frameworka, a nie programisty.
Więc jeszcze raz, czemu mam bardziej ufać komuś kto nie chce użyć frameworka,
niż zespołowi ludzi który poświęca mnóstwo czasu i wiedzy by dopracować jakieś
narzędzie? Bo ten jeden programista uważa że jest bardziej nieomylny? :)
--
Wojciech Bańcer
Pokrętne rozumowanie. Ale ok, Twoim zdaniem "zespół ludzi" + Ty zrobi mniej błędów niż ja?
Zważywszy na to że ów zespół z Tobą się nie komunikuje?

Paweł
Wojciech Bancer
2017-03-18 15:09:06 UTC
Permalink
On 2017-03-18, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Pokrętne rozumowanie. Ale ok, Twoim zdaniem "zespół ludzi" + Ty zrobi mniej błędów niż ja?
Zważywszy na to że ów zespół z Tobą się nie komunikuje?
Ten zespół swoją robotę dokumentuje i piszę do niej testy, więc jak najbardziej.
I jak najbardziej istnieje z nim komunikacja. I tenże zespół zdejmuje ze mnie
klasę problemów, którymi nie muszę się przejmować.

Sorry, ale czasy kiedy programista był oderwany i samodzielnie mógł sobie coś
napisać, to się coś mniej więcej w okolicach Another World skończyły.
--
Wojciech Bańcer
***@gmail.com
Borys Pogoreło
2017-03-20 17:12:24 UTC
Permalink
Post by zpksoft
Pokrętne rozumowanie. Ale ok, Twoim zdaniem "zespół ludzi" + Ty zrobi
mniej błędów niż ja?
Tak, bo poświęcili czas na rozpracowanie wszystkich trudnych przypadków, w
tym przypadków brzegowych i niezgodności przeglądarek. Masz na to czas? W
tym co nam wkleiłeś było już jedno obejście dla starszego IE, a to zaledwie
kilka liniijek.
--
Borys Pogoreło
borys(#)leszno,edu,pl
zpksoft
2017-03-21 10:52:42 UTC
Permalink
Post by Borys Pogoreło
Post by zpksoft
Pokrętne rozumowanie. Ale ok, Twoim zdaniem "zespół ludzi" + Ty zrobi
mniej błędów niż ja?
Tak, bo poświęcili czas na rozpracowanie wszystkich trudnych przypadków, w
tym przypadków brzegowych i niezgodności przeglądarek. Masz na to czas? W
tym co nam wkleiłeś było już jedno obejście dla starszego IE, a to zaledwie
kilka liniijek.
--
Borys Pogoreło
borys(#)leszno,edu,pl
Są dwie drogi:

- starać się zaspokoić wszystkich, lub
- olać niespełniających standardy

Ja preferuję to drugie. Jak zauważyłeś w moim kodzie- nie do końca jest to prawda. Ale z reguły trzymam się tego.
Niedawno czytałem jakiś kod w necie z kilkoma "obejściami". Usunąłem je i co się okazało? Na wszystkich przeglądarkach (mówię oczywiście o najnowszych wersjach)zagrało.

Paweł
Borys Pogoreło
2017-03-21 21:14:17 UTC
Permalink
Post by zpksoft
Ja preferuję to drugie. Jak zauważyłeś w moim kodzie- nie do końca jest to prawda. Ale z reguły trzymam się tego.
Niedawno czytałem jakiś kod w necie z kilkoma "obejściami". Usunąłem je i co się okazało? Na wszystkich przeglądarkach (mówię oczywiście o najnowszych wersjach)zagrało.
Bo te obejścia dotyczą najcześciej IE<=9. Jeśli trzeba wspierać aplikacje
zgodne z tymi przeglądarkami (są miejsca, gdzie IE8 nie umarło), to nie
jest miło.
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-18 17:25:37 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
niestety, nie wszędzie zawsze można mieć naj.. naj... najnowszą przeglądarkę,
czego stety efektem jest, że strona nie wyświetla się prawidłowo,
bo jquery działa tylko u twórcy na jego jedynej słusznej przeglądarce
(oraz całej podobnej do twórcy rodzinie).
Konkretne biblioteki/frameworki mają opisane wsparcie na konkretnych
przeglądarkach. Własnoręcznie dziergany kod nie ma takiego wsparcie i musi być
własnoręcznie wytestowany.
Własnoręcznie dziergany kod, tak jak i biblioteki czy frameworka,
powinien zawsze mieć unit testy + idealnie e2e testy.
Post by Wojciech Bancer
Na 1000 przypadków błedów może jeden będzie błędem frameworka, a nie programisty.
Więc jeszcze raz, czemu mam bardziej ufać komuś kto nie chce użyć frameworka,
niż zespołowi ludzi który poświęca mnóstwo czasu i wiedzy by dopracować jakieś
narzędzie? Bo ten jeden programista uważa że jest bardziej nieomylny? :)
Coś odnoszę wrażenie, że nikt tutaj nie deprecjonuje znaczenia
frameworków, a jedynie wątpliwe korzystanie z wszystkiego, jak leci.

Same frameworki nie są złe i mogą nawet nie zawierać poważnych błędów,
ale mogą być za to overcomplicated :-) Ja osobście podziękowałem
EmberJS. Ten framework jest przekombinowany do maksimum. Ale to moje
osobiste zdanie.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
PawelS cbrbob(at)wbcd(dot)pl
2017-04-02 09:41:16 UTC
Permalink
Post by Cezary Tomczyk
Post by Wojciech Bancer
[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
niestety, nie wszędzie zawsze można mieć naj.. naj... najnowszą przeglądarkę,
czego stety efektem jest, że strona nie wyświetla się prawidłowo,
bo jquery działa tylko u twórcy na jego jedynej słusznej przeglądarce
(oraz całej podobnej do twórcy rodzinie).
Konkretne biblioteki/frameworki mają opisane wsparcie na konkretnych
przeglądarkach. Własnoręcznie dziergany kod nie ma takiego wsparcie i musi być
własnoręcznie wytestowany.
Własnoręcznie dziergany kod, tak jak i biblioteki czy frameworka,
powinien zawsze mieć unit testy + idealnie e2e testy.
Post by Wojciech Bancer
Na 1000 przypadków błedów może jeden będzie błędem frameworka, a nie programisty.
Więc jeszcze raz, czemu mam bardziej ufać komuś kto nie chce użyć frameworka,
niż zespołowi ludzi który poświęca mnóstwo czasu i wiedzy by dopracować jakieś
narzędzie? Bo ten jeden programista uważa że jest bardziej nieomylny? :)
Coś odnoszę wrażenie, że nikt tutaj nie deprecjonuje znaczenia
frameworków, a jedynie wątpliwe korzystanie z wszystkiego, jak leci.
DOKŁADNIE
nic dodać, nic ując,
Rozumiem stosowanie frameworków przy pisaniu zaawansowanych aplikacji w JS,
która prawie działa jak aplikacja na Desktopie, po załadowaniu się,
dalsza komunikacja z serwerem odbywa się już poprzez XMLHttpRequest().
Proste akcje typu focus() na danym polu lub wyświetlenie komunikatu,
można zrealizować w samym JS i zadziała to w większości przeglądarek.
Post by Cezary Tomczyk
Same frameworki nie są złe i mogą nawet nie zawierać poważnych błędów,
ale mogą być za to overcomplicated :-) Ja osobście podziękowałem
EmberJS. Ten framework jest przekombinowany do maksimum. Ale to moje
osobiste zdanie.
PawelS cbrbob(at)wbcd(dot)pl
2017-04-02 09:35:02 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
niestety, nie wszędzie zawsze można mieć naj.. naj... najnowszą przeglądarkę,
czego stety efektem jest, że strona nie wyświetla się prawidłowo,
bo jquery działa tylko u twórcy na jego jedynej słusznej przeglądarce
(oraz całej podobnej do twórcy rodzinie).
Konkretne biblioteki/frameworki mają opisane wsparcie na konkretnych
Czytam. "wsparcie dla przeglądarek używanych głównie przez ich autorów",
No Comment.
Post by Wojciech Bancer
przeglądarkach. Własnoręcznie dziergany kod nie ma takiego wsparcie i musi być
własnoręcznie wytestowany.
Zgadza się, tak jak to już wcześniej / później napisano,
do tego swojego kawałka kodu również mam kilka różnych testów napisane.
Niewątpliwie jednak wszystkich możliwych przypadków nie sprawdziłem,
Biblioteki używane przez większą grupę osób z pewnością
zostały sprawdzone w dużo większej ilości przypadków,
więc prawdopodobnie większość błędów w nich została naprawiona.
Post by Wojciech Bancer
Na 1000 przypadków błedów może jeden będzie błędem frameworka, a nie programisty.
Więc jeszcze raz, czemu mam bardziej ufać komuś kto nie chce użyć frameworka,
niż zespołowi ludzi który poświęca mnóstwo czasu i wiedzy by dopracować jakieś
narzędzie? Bo ten jeden programista uważa że jest bardziej nieomylny? :)
Jak chcę usmażyć sobie jajecznicę do idę do kuchni,
nie muszę otwierać marnej jakości stronki
z toną frameworków, których inicjalizacja i działanie,
nawet na całkiem mocnych maszynach powoduje widoczny freeze przeglądarki.

Przeczytaj uważnie kilka razy to co sam napisałeś
oraz to co ja napisałem (to może kiedyś zrozumiesz).
Nigdzie nie napisałem ani nie zachęcałem byś używał tego co ktoś napisał,
zamiast powszechnie stosowanych frameworków. Używaj tego co chcesz.
Co najwyżej podkreślam, że do prostych operacji, by np: zrobić focus()
na polu tekstowym oraz ustawić background na czerwono
(a po 5 sekundach usunąć ten czerwony background),
nie są potrzebne żadne biblioteki, sam JavaScrit wystarczy.
Wojciech Bancer
2017-04-02 14:43:19 UTC
Permalink
On 2017-04-02, PawelS cbrbob(at)wbcd(dot)pl <***@email.org> wrote:

[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
Przeczytaj uważnie kilka razy to co sam napisałeś
oraz to co ja napisałem (to może kiedyś zrozumiesz).
Ile Ty masz lat, że stosujesz tekst na poziomie przedszkola?
Serio nie jest Ci głupio?
Post by PawelS cbrbob(at)wbcd(dot)pl
Nigdzie nie napisałem ani nie zachęcałem byś używał tego co ktoś napisał,
zamiast powszechnie stosowanych frameworków. Używaj tego co chcesz.
Co najwyżej podkreślam, że do prostych operacji, by np: zrobić focus()
na polu tekstowym oraz ustawić background na czerwono
(a po 5 sekundach usunąć ten czerwony background),
nie są potrzebne żadne biblioteki, sam JavaScrit wystarczy.
Ani do tego, ani do tego nie trzeba Javascriptu.
Żeby zrobić focus wystarczy atrybut html, a do zmiany koloru tła
wystarczy animacja CSS.

Biblioteki nie są *potrzebne* do niczego, przecież o tym pisałem
wyraźnie. Za to ułatwiają pracę w grupie, standaryzację i pracę
jako taką i to poważnie. Tylko aby to docenić, to trzeba w życiu
napisać trochę więcej niż "proste rzeczy".
--
Wojciech Bańcer
***@gmail.com
PawelS cbrbob(at)wbcd(dot)pl
2017-04-11 18:43:29 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
Przeczytaj uważnie kilka razy to co sam napisałeś
oraz to co ja napisałem (to może kiedyś zrozumiesz).
Ile Ty masz lat, że stosujesz tekst na poziomie przedszkola?
Serio nie jest Ci głupio?
Tak, jest mi głupio, że w ogóle Tobie odpisałem.
Zgodnie z Twoim domniemanym życzeniem:
EOT
Post by Wojciech Bancer
Post by PawelS cbrbob(at)wbcd(dot)pl
Nigdzie nie napisałem ani nie zachęcałem byś używał tego co ktoś napisał,
zamiast powszechnie stosowanych frameworków. Używaj tego co chcesz.
Co najwyżej podkreślam, że do prostych operacji, by np: zrobić focus()
na polu tekstowym oraz ustawić background na czerwono
(a po 5 sekundach usunąć ten czerwony background),
nie są potrzebne żadne biblioteki, sam JavaScrit wystarczy.
Ani do tego, ani do tego nie trzeba Javascriptu.
Żeby zrobić focus wystarczy atrybut html, a do zmiany koloru tła
wystarczy animacja CSS.
Chyba, nie zrozumiałeś, animacja CSS
prawdopodobnie nie zrealizujesz powyższego,
ale tak jak wyżej napisałem ... EOT
Post by Wojciech Bancer
Biblioteki nie są *potrzebne* do niczego, przecież o tym pisałem
wyraźnie. Za to ułatwiają pracę w grupie, standaryzację i pracę
jako taką i to poważnie. Tylko aby to docenić, to trzeba w życiu
napisać trochę więcej niż "proste rzeczy".
zpksoft
2017-04-12 18:44:12 UTC
Permalink
Post by PawelS cbrbob(at)wbcd(dot)pl
Post by Wojciech Bancer
[...]
Post by PawelS cbrbob(at)wbcd(dot)pl
Przeczytaj uważnie kilka razy to co sam napisałeś
oraz to co ja napisałem (to może kiedyś zrozumiesz).
Ile Ty masz lat, że stosujesz tekst na poziomie przedszkola?
Serio nie jest Ci głupio?
Tak, jest mi głupio, że w ogóle Tobie odpisałem.
EOT
Post by Wojciech Bancer
Post by PawelS cbrbob(at)wbcd(dot)pl
Nigdzie nie napisałem ani nie zachęcałem byś używał tego co ktoś napisał,
zamiast powszechnie stosowanych frameworków. Używaj tego co chcesz.
Co najwyżej podkreślam, że do prostych operacji, by np: zrobić focus()
na polu tekstowym oraz ustawić background na czerwono
(a po 5 sekundach usunąć ten czerwony background),
nie są potrzebne żadne biblioteki, sam JavaScrit wystarczy.
Ani do tego, ani do tego nie trzeba Javascriptu.
Żeby zrobić focus wystarczy atrybut html, a do zmiany koloru tła
wystarczy animacja CSS.
Chyba, nie zrozumiałeś, animacja CSS
prawdopodobnie nie zrealizujesz powyższego,
ale tak jak wyżej napisałem ... EOT
Post by Wojciech Bancer
Biblioteki nie są *potrzebne* do niczego, przecież o tym pisałem
wyraźnie. Za to ułatwiają pracę w grupie, standaryzację i pracę
jako taką i to poważnie. Tylko aby to docenić, to trzeba w życiu
napisać trochę więcej niż "proste rzeczy".
Niepotrzebne są te przytyki Panowie.

A tak z ciekawości spytam: jaki to atrybut html wystarcza do zrobienia focusu?
Oczywiście mam na myśli aplikację www, czyli focus na życzenie programisty :)

Paweł
Wojciech Bancer
2017-04-12 18:56:10 UTC
Permalink
On 2017-04-12, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
A tak z ciekawości spytam: jaki to atrybut html wystarcza do zrobienia focusu?
W wielu przypadkach jest to autofocus (html5).
Post by zpksoft
Oczywiście mam na myśli aplikację www, czyli focus na życzenie programisty :)
A to jakieś atrybuty są dopisywane nie na życzenie?
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-04-12 19:29:06 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
A tak z ciekawości spytam: jaki to atrybut html wystarcza do zrobienia focusu?
W wielu przypadkach jest to autofocus (html5).
Post by zpksoft
Oczywiście mam na myśli aplikację www, czyli focus na życzenie programisty :)
A to jakieś atrybuty są dopisywane nie na życzenie?
--
Wojciech Bańcer
Jeżeli przy pomocy ajaxa ładuję dialog do np. jakiegoś diva to autofocus nie działa. Działa przy ładowaniu strony. Ale to już nie jest ajax skoro musimy dla wywołania własnego dialogu przeładowywać stronę.

Wydaje mi się że bez odrobiny JS się nie obejdzie object.focus();


Paweł
PawelS cbrbob(at)wbcd(dot)pl
2017-04-21 17:58:05 UTC
Permalink
Post by zpksoft
Post by Wojciech Bancer
[...]
Post by zpksoft
A tak z ciekawości spytam: jaki to atrybut html wystarcza do zrobienia focusu?
W wielu przypadkach jest to autofocus (html5).
Post by zpksoft
Oczywiście mam na myśli aplikację www, czyli focus na życzenie programisty :)
A to jakieś atrybuty są dopisywane nie na życzenie?
--
Wojciech Bańcer
Jeżeli przy pomocy ajaxa ładuję dialog do np. jakiegoś diva to autofocus nie działa. Działa przy ładowaniu strony. Ale to już nie jest ajax skoro musimy dla wywołania własnego dialogu przeładowywać stronę.
Wydaje mi się że bez odrobiny JS się nie obejdzie object.focus();
Dziękuję za doprecyzowanie. Dokładnie o takiej sytuacji napisałem.
Strona została załadowana, teraz ktoś kliknął w element
wizualnie przypominający Button, ale nie wypełnił niezbędnego pola,
wtedy pojawia się window.alert() z informacją,
następnie jest FORM.ELEMENT.focus(),
oraz dodatkowo na 5 sekund FORM.ELEMENT.backgroundColor na czerwowo,
Kliknięcie innego elementu wymaga wypełnienia innego pola,
które jeśli jest puste powoduje analogiczną sytuację.

Być może HTML5 rozwiązuje powyższe problemy,
ale niestety zapewne nie będzie działać wszędzie.
Post by zpksoft
Paweł
Wojciech Bancer
2017-03-17 21:04:20 UTC
Permalink
On 2017-03-16, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Post by rePeter
jedenaste: Nie spamuj
Nie te czasy powiadasz? Dobrze ze dodałeś "raczej".
Obserwuję notoryczne wytaczanie armat na wróble. Na stronach nic się nie dzieje a dołączonych "frameworków" bez liku
"bo tak wygląda profesjonalnie".
Nie. Bo czas jest cenniejszy niż te kilka kb kodu.
Nie obsługujemy w dzisiejszych czasach atarynek.
Post by zpksoft
Niech każdy myśli po swojemu. Tak jest ok. Czasami korzystam z procedur znalezionych w necie robiących
ciekawe rzeczy. Reszta jest tak prymitywnie prosta że nie miałem jeszcze potrzeby stosowania np. jquery.
A piszę aplikacje biznesowe o różnorodnych funkcjach.
Ale zdaj sobie sprawę że stajesz w opozycji do znacznej większości.
Dopóki nie masz konkurencji it's fine. Ale jak zaczniesz, to się może
okazać, że oni potrafią coś zrobić szybciej. I nikogo nie będzie wtedy
wzruszać tłumaczenie że przecież Twój kod wykonuje się 15 cykli
szybciej. :)
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-18 00:03:45 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Post by rePeter
jedenaste: Nie spamuj
Nie te czasy powiadasz? Dobrze ze dodałeś "raczej".
Obserwuję notoryczne wytaczanie armat na wróble. Na stronach nic się nie dzieje a dołączonych "frameworków" bez liku
"bo tak wygląda profesjonalnie".
Nie. Bo czas jest cenniejszy niż te kilka kb kodu.
Nie obsługujemy w dzisiejszych czasach atarynek.
Pojęcie oszczędzania przez to czasu jest względne. Dodajesz coś, co
rozwiązuje jeden problem i jednocześnie tworzysz pięć innych problemów,
np. może okazać się, że jest niekompatybilne z inną bilioteką albo ów
lib jest zależny od cośTam 2.x a w projekcie jest tylko wersja 1.x.

Poza tym, dodanie każdego liba to ekstra czas na zarządzanie nim
(wersjami, kompatybilnością, a jak znajdziesz bug-a, to kto to ma
poprawić?).
Post by Wojciech Bancer
Post by zpksoft
Niech każdy myśli po swojemu. Tak jest ok. Czasami korzystam z procedur znalezionych w necie robiących
ciekawe rzeczy. Reszta jest tak prymitywnie prosta że nie miałem jeszcze potrzeby stosowania np. jquery.
A piszę aplikacje biznesowe o różnorodnych funkcjach.
Ale zdaj sobie sprawę że stajesz w opozycji do znacznej większości.
To, że większość tak robi, nie znaczy, że dobrze.
Post by Wojciech Bancer
Dopóki nie masz konkurencji it's fine. Ale jak zaczniesz, to się może
okazać, że oni potrafią coś zrobić szybciej. I nikogo nie będzie wtedy
wzruszać tłumaczenie że przecież Twój kod wykonuje się 15 cykli
szybciej. :)
Tu nie chodzi o przysłowiowe 15 cykli dłużej, ale dodawanie
niepotrzebnej warstwy, gdzie problem czasem może być rozwiązany w
prostszy sposób. ;-)
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Wojciech Bancer
2017-03-18 14:52:32 UTC
Permalink
On 2017-03-18, Cezary Tomczyk <***@gmail.com> wrote:

[...]
Post by Cezary Tomczyk
Post by Wojciech Bancer
Nie. Bo czas jest cenniejszy niż te kilka kb kodu.
Nie obsługujemy w dzisiejszych czasach atarynek.
Pojęcie oszczędzania przez to czasu jest względne. Dodajesz coś, co
rozwiązuje jeden problem i jednocześnie tworzysz pięć innych problemów,
np. może okazać się, że jest niekompatybilne z inną bilioteką albo ów
lib jest zależny od cośTam 2.x a w projekcie jest tylko wersja 1.x.
Dawno dawno temu ludzie wymyślili coś co się nazywa "zależność"
i opracowali systemy do zarządzania nimi. Dla przykładu możesz kojarzyć
coś co się nazywa homebrew.

W światku Javascriptu również takie systemy są i sprawdzają się o wiele lepiej
niż wiedza pojedynczego programisty, choćby i był on najlepszy.
Post by Cezary Tomczyk
Poza tym, dodanie każdego liba to ekstra czas na zarządzanie nim
(wersjami, kompatybilnością, a jak znajdziesz bug-a, to kto to ma
poprawić?).
Wspomniane wyżej dependency managery. Nie wiem czy zdajesz sobie
sprawę, ale od dłuższego już czasu, są one wszechobecne w praktycznie
każdym języku programowania.

Naprawdę będziesz kwestionować rozwój open source i jego dokonania
w zakresie radzenia sobie z takimi problemami? Czy po prostu nie
wiesz jak to się robi?

Popatrz może co potrafi zrobić bower, npm, albo yarn.
Błędy możesz zgłosić, możesz zrobić sobie fork projektu i podesłać
poprawkę autorom. Przy czym ja nadal twierdze, że więcej błędów
robi samodzielny programista, który ma termin, ograniczony budżet,
niż zespół ludzi którzy robią coś ochotniczo, mają czas pisać testy
i dzielą się wiedzą. I masz się kogo spytać.
Post by Cezary Tomczyk
Post by Wojciech Bancer
Ale zdaj sobie sprawę że stajesz w opozycji do znacznej większości.
To, że większość tak robi, nie znaczy, że dobrze.
Nie znaczy też, że jest to rozwiązanie złe. Świat ewoluował, warto się
czasem zagłębić w to co się dzieje, a nie tkwić w rozwiazaniach
z początku wieku.

Jeszcze pamiętam czasy kiedy każda agencja interaktywna, każdy podmiot
na polskim rynku musiał mieć własne rozwiązanie, własny framework
i własne rozwiązania. :) I to nie były dobre czasy :)
Post by Cezary Tomczyk
Post by Wojciech Bancer
szybciej. :)
Tu nie chodzi o przysłowiowe 15 cykli dłużej, ale dodawanie
niepotrzebnej warstwy, gdzie problem czasem może być rozwiązany w
prostszy sposób. ;-)
Jakby to było lepsze, to do dzisiaj programowalibyśmy w asemblerze.
Bo tam masz najmniejszą warstwę abstrakcji.

Zamiast myśleć w ten sposób, pomyśl raczej że jest to warstwa która
*zdejmuje z Ciebie* konieczność zajmowania się pewną klasą problemów.
I to taką, która przez długi czas była bolączką i bardzo dużym kosztem
w świecie IT.
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-18 17:07:42 UTC
Permalink
On 18/03/2017 15:52, Wojciech Bancer wrote:
[...]
Post by Wojciech Bancer
Jakby to było lepsze, to do dzisiaj programowalibyśmy w asemblerze.
Bo tam masz najmniejszą warstwę abstrakcji.
Skracając nieco: tak, znam npm, bower, brew i z nich korzystam :-)
Post by Wojciech Bancer
Zamiast myśleć w ten sposób, pomyśl raczej że jest to warstwa która
*zdejmuje z Ciebie* konieczność zajmowania się pewną klasą problemów.
I to taką, która przez długi czas była bolączką i bardzo dużym kosztem
w świecie IT.
Zgoda. Chodzi mi tylko o pewnien balans i rozsądek. Branie wszystkiego,
jak leci, to też nie jest dobra strategia.

Można wszystko - można i zrobić forka, można zgłosić swoją poprawkę
(pull request, choć kiedy autor ją zastosuje to już odrębna sprawa),
można dołączyć dziesiątki różnych pakietów, narzędzi, funkcji, itd. Jak
we wszystkim - umiar i rozsądek.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
zpksoft
2017-03-19 08:02:21 UTC
Permalink
CIACH..
Jakby to było lepsze, to do dzisiaj programowalibyśmy w asemblerze.
Bo tam masz najmniejszą warstwę abstrakcji.
Zamiast myśleć w ten sposób, pomyśl raczej że jest to warstwa która
*zdejmuje z Ciebie* konieczność zajmowania się pewną klasą problemów.
I to taką, która przez długi czas była bolączką i bardzo dużym kosztem
w świecie IT.
--
Wojciech Bańcer
Do tego są technologie, nie frameworki.

Paweł
Wojciech Bancer
2017-03-19 19:56:33 UTC
Permalink
On 2017-03-19, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Do tego są technologie, nie frameworki.
Nie. Do tego są właśnie frameworki.

W Javie masz Spring. W PHP masz Symfony/Zend/Laravel. Ruby + Rails itp. .NET Framework (C#)
itd. itp. W javascripcie masz tego już naprawdę na tony (Express.JS, jQuery, Angular,
React, Vue itp. itd.).
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-19 20:37:13 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Do tego są technologie, nie frameworki.
Nie. Do tego są właśnie frameworki.
W Javie masz Spring. W PHP masz Symfony/Zend/Laravel. Ruby + Rails itp. .NET Framework (C#)
itd. itp. W javascripcie masz tego już naprawdę na tony (Express.JS, jQuery, Angular,
React, Vue itp. itd.).
jQuery to nie framework, a zwykły tool :-)
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Borys Pogoreło
2017-03-20 17:16:23 UTC
Permalink
Post by Wojciech Bancer
Jeszcze pamiętam czasy kiedy każda agencja interaktywna, każdy podmiot
na polskim rynku musiał mieć własne rozwiązanie, własny framework
i własne rozwiązania. :) I to nie były dobre czasy :)
Teraz za to społeczność trochę przegina, aż się z nich żartuje.

Loading Image...:large
--
Borys Pogoreło
borys(#)leszno,edu,pl
zpksoft
2017-03-18 14:34:00 UTC
Permalink
W dniu piątek, 17 marca 2017 22:05:01 UTC+1 użytkownik Wojciech Bancer napisał:
...
Post by Wojciech Bancer
Post by zpksoft
Niech każdy myśli po swojemu. Tak jest ok. Czasami korzystam z procedur znalezionych w necie robiących
ciekawe rzeczy. Reszta jest tak prymitywnie prosta że nie miałem jeszcze potrzeby stosowania np. jquery.
A piszę aplikacje biznesowe o różnorodnych funkcjach.
Ale zdaj sobie sprawę że stajesz w opozycji do znacznej większości.
Dopóki nie masz konkurencji it's fine. Ale jak zaczniesz, to się może
okazać, że oni potrafią coś zrobić szybciej. I nikogo nie będzie wtedy
wzruszać tłumaczenie że przecież Twój kod wykonuje się 15 cykli
szybciej. :)
--
Wojciech Bańcer
Tak sobie możemy rozmawiać, bez efektu. Nie myśl, że w każdym projekcie wszystko piszę od początku.
Może się też okazać że stosując jakieś tam frameworki zrobisz zadanie znacznie wolniej niż ja bo będziesz musiał się najpierw tego nauczyć.
Kolejna sprawa to aplikacje o wysokim stopniu bezpieczeństwa. Oprzesz je na freewarowym frameworku? Np. aplikację dla banku?
Jak w to wsiąkniesz to ciężko będzie Ci obyć się bez tego.

Reasumując: każda droga ma swoje walety i zady, każdy wybiera swoją.

A na koniec mogę wspomnieć, że opieram się na własnej logice aplikacyjnej, łącznie z komunikacją. Między innymi nie używam moim zdaniem przestarzałych formularzy. Ale to już inny temat...

Paweł
Wojciech Bancer
2017-03-18 15:05:03 UTC
Permalink
Post by zpksoft
Post by Wojciech Bancer
szybciej. :)
--
Wojciech Bańcer
Tak sobie możemy rozmawiać, bez efektu. Nie myśl, że w każdym projekcie wszystko piszę od początku.
Może się też okazać że stosując jakieś tam frameworki zrobisz zadanie znacznie wolniej niż ja bo będziesz musiał się najpierw tego nauczyć.
Ale to się da wykazać. Oczywiście że są jakieś mikro projekty przy których uczenie się frameworka nie
ma sensu, ale:

a) nie uczysz się go dla 1 takiego projektu
b) dobierasz proste narzędzia (tak, frameworki też) do zadania

W każdym przypadku jest się więc w stanie oszczędzić czas, zwłaszcza długofalowo.
Post by zpksoft
Kolejna sprawa to aplikacje o wysokim stopniu bezpieczeństwa. Oprzesz je na freewarowym frameworku? Np. aplikację dla banku?
Jak w to wsiąkniesz to ciężko będzie Ci obyć się bez tego.
Ty mi raczej znajdź bank, który NIE korzysta z rozwiązań open-source.
Od razu Ci podpowiem: nie ma takich. PKO, mBank, BZWBK, Sandander, Polbank,
Citi Handlowy, cokolwiek nie znajdziesz, korzysta z open source garściami.

Przespałeś ostatnie 10-15 lat w IT? :)
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-18 17:13:24 UTC
Permalink
[...]
Post by Wojciech Bancer
Post by zpksoft
Kolejna sprawa to aplikacje o wysokim stopniu bezpieczeństwa. Oprzesz je na freewarowym frameworku? Np. aplikację dla banku?
Jak w to wsiąkniesz to ciężko będzie Ci obyć się bez tego.
Ty mi raczej znajdź bank, który NIE korzysta z rozwiązań open-source.
Od razu Ci podpowiem: nie ma takich. PKO, mBank, BZWBK, Sandander, Polbank,
Citi Handlowy, cokolwiek nie znajdziesz, korzysta z open source garściami.
To, że korzystają to dobrze. Problem w tym, by robiły to z głową, bo ich
obecne rozwiązania są tak rozdęte, że nawet najlepsze komputery zatykają
się. Ogólnie jakość bankowych rozwiązań w internecie pozostawia wiele do
życzenia, ale to nie jest li tylko problem jakich narzędzi/frameworków
używają, ale przede wszystkim osób, które zarządzają projektami. Jest
deficyt na dobry liderów projektów. :-(
--
Cezary Tomczyk
http://www.ctomczyk.pl/
zpksoft
2017-03-19 07:45:16 UTC
Permalink
ciach..>
Ty mi raczej znajdź bank, który NIE korzysta z rozwiązań open-source.
Od razu Ci podpowiem: nie ma takich. PKO, mBank, BZWBK, Sandander, Polbank,
Citi Handlowy, cokolwiek nie znajdziesz, korzysta z open source garściami.
Przespałeś ostatnie 10-15 lat w IT? :)
--
Wojciech Bańcer
Nie przespałem :) Tylko ewoluuję a nie dryfuję. To jest zasadnicza różnica.
Upierasz się przy poglądzie że stosowanie frameworków to konieczność i nowoczesność.
Ja uważam natomiast, że większość tego co oprogramowujemy to prościzna. Podstawowy JS daje wszystko co potrzeba.
Czasami spotykam się z trudniejszym zagadnieniem, ale do tego rórnież nie potrzebuję frameworków. Wystarczy poszukać algorytmu.

Paweł
Wojciech Bancer
2017-03-19 20:00:51 UTC
Permalink
On 2017-03-19, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Nie przespałem :) Tylko ewoluuję a nie dryfuję. To jest zasadnicza różnica.
Upierasz się przy poglądzie że stosowanie frameworków to konieczność i nowoczesność.
Bo jest. Tak jak kiedyś nowoczesnym było programowanie w C, a nie na kartach perforowanych.
Post by zpksoft
Ja uważam natomiast, że większość tego co oprogramowujemy to prościzna.
Podstawowy JS daje wszystko co potrzeba.
Zależy od skali projektu.
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-03-19 21:04:54 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Nie przespałem :) Tylko ewoluuję a nie dryfuję. To jest zasadnicza różnica.
Upierasz się przy poglądzie że stosowanie frameworków to konieczność i nowoczesność.
Bo jest. Tak jak kiedyś nowoczesnym było programowanie w C, a nie na kartach perforowanych.
A na kartach perforowanych to nie programowało się w C?
Post by Wojciech Bancer
Post by zpksoft
Ja uważam natomiast, że większość tego co oprogramowujemy to prościzna.
Podstawowy JS daje wszystko co potrzeba.
Zależy od skali projektu.
Zdecydowana większość "projektów" to proste stronki gdzie oczywiście w nagłówku musi być zmieniający się baner a w środku jquery :)
No i oczywiście wszystko pisane w joomli czy innym cms-ie.

Paweł
Wojciech Bancer
2017-03-21 14:08:34 UTC
Permalink
On 2017-03-19, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Post by Wojciech Bancer
Bo jest. Tak jak kiedyś nowoczesnym było programowanie w C, a nie na kartach perforowanych.
A na kartach perforowanych to nie programowało się w C?
W języku maszynowym.
Post by zpksoft
Post by Wojciech Bancer
Zależy od skali projektu.
Zdecydowana większość "projektów" to proste stronki gdzie oczywiście w nagłówku musi być zmieniający się baner a w środku jquery :)
No i oczywiście wszystko pisane w joomli czy innym cms-ie.
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty dużo większe,
gdzie posłużenie się czystym javascriptem to jak pisanie gry w asemblerze.
I będą problemy z zarządzaniem projektem, ludźmi i przede wszystkim wydajnością
tych ludzi.
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-21 16:35:59 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Post by Wojciech Bancer
Bo jest. Tak jak kiedyś nowoczesnym było programowanie w C, a nie
na kartach perforowanych.
A na kartach perforowanych to nie programowało się w C?
W języku maszynowym.
Post by zpksoft
Post by Wojciech Bancer
Zależy od skali projektu.
Zdecydowana większość "projektów" to proste stronki gdzie
oczywiście w nagłówku musi być zmieniający się baner a w środku
jquery :) No i oczywiście wszystko pisane w joomli czy innym
cms-ie.
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty
dużo większe, gdzie posłużenie się czystym javascriptem to jak
pisanie gry w asemblerze.
Ekhm, że jak? "[...] posłużenie się czystym javascriptem to jak pisanie
gry w asemblerze [...]". - to w czym pisane są projekty, w których
bieżesz udział?
Post by Wojciech Bancer
I będą problemy z zarządzaniem projektem,
ludźmi i przede wszystkim wydajnością tych ludzi.
Najwyraźniej zrekrutowani zostali juniorzy. Jak ktoś wie, jak
programować w JavaScript, to nie ma problemu z wydajnością w ogóle. Od
tego są liderzy zespołów, by tą wydajność podnieść. Różnymi sposobami.

Tzw. niechęć do korzystania z dostępnych funkcjonalności JavaScript
wynika albo z niewiedzy, albo z lenistwa.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Wojciech Bancer
2017-03-21 17:35:57 UTC
Permalink
Post by Cezary Tomczyk
Post by Wojciech Bancer
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty
dużo większe, gdzie posłużenie się czystym javascriptem to jak
pisanie gry w asemblerze.
Ekhm, że jak? "[...] posłużenie się czystym javascriptem to jak pisanie
gry w asemblerze [...]". - to w czym pisane są projekty, w których
bieżesz udział?
Angular.js, React, d3, socket.io, jasmine, lodash, protractor,
express.js. Do tego wsparcie przez typescript, bootstrap, angular-material i wiele innych
(projekty są pisane przez lata już). To tak z grubsza Proponujesz to wszystko pisać
z palca od zera przy kazdym projeckie i potem przy zmianie programisty wdrażać nowego
w tok myślenia poprzednika?
Post by Cezary Tomczyk
Post by Wojciech Bancer
I będą problemy z zarządzaniem projektem,
ludźmi i przede wszystkim wydajnością tych ludzi.
Najwyraźniej zrekrutowani zostali juniorzy.
Tak, tak. :)
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-22 12:33:49 UTC
Permalink
Post by Wojciech Bancer
Post by Cezary Tomczyk
Post by Wojciech Bancer
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty
dużo większe, gdzie posłużenie się czystym javascriptem to jak
pisanie gry w asemblerze.
Ekhm, że jak? "[...] posłużenie się czystym javascriptem to jak pisanie
gry w asemblerze [...]". - to w czym pisane są projekty, w których
bieżesz udział?
Angular.js, React, d3, socket.io, jasmine, lodash, protractor,
express.js. Do tego wsparcie przez typescript, bootstrap, angular-material i wiele innych
(projekty są pisane przez lata już). To tak z grubsza Proponujesz to wszystko pisać
z palca od zera przy kazdym projeckie i potem przy zmianie programisty wdrażać nowego
w tok myślenia poprzednika?
Ja referuję do Twojej wypowiedzi: "[...] posłużenie się czystym
javascriptem to jak pisanie gry w asemblerze."

Nie mam na myśli wynajdywania koła na nowo. Innymi słowy, frameworki jak
React, AngularJS, itd. są użyteczne. Niemniej jednak niektóre rzeczy da
się napisać w samym JavaScripcie bez potrzeby angażowania od razu
dziesiątek/setek kilobajtów z różnych narzędzi.
Post by Wojciech Bancer
To tak z grubsza Proponujesz to wszystko pisać
Post by Cezary Tomczyk
z palca od zera przy kazdym projeckie i potem przy zmianie programisty wdrażać nowego
w tok myślenia poprzednika?
Nie, nie proponuję tego. Proponuję jednak, by przed każdym użyciem
czegokolwiek zadać sobie pytanie jakie problemy chcę przez to rozwiązać.
Przykładem może być dodanie underscorejs tylko po to, by skorzystać z
jednej funkcji. Widziałem takie rzeczy.
Post by Wojciech Bancer
Post by Cezary Tomczyk
Post by Wojciech Bancer
I będą problemy z zarządzaniem projektem,
ludźmi i przede wszystkim wydajnością tych ludzi.
Najwyraźniej zrekrutowani zostali juniorzy.
Tak, tak. :)
Dobra dobra :-) Może przejaskrawiłem.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
zpksoft
2017-03-22 14:05:26 UTC
Permalink
Post by Wojciech Bancer
Post by Cezary Tomczyk
Post by Wojciech Bancer
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty
dużo większe, gdzie posłużenie się czystym javascriptem to jak
pisanie gry w asemblerze.
Ekhm, że jak? "[...] posłużenie się czystym javascriptem to jak pisanie
gry w asemblerze [...]". - to w czym pisane są projekty, w których
bieżesz udział?
Angular.js, React, d3, socket.io, jasmine, lodash, protractor,
express.js. Do tego wsparcie przez typescript, bootstrap, angular-material i wiele innych
(projekty są pisane przez lata już). To tak z grubsza Proponujesz to wszystko pisać
z palca od zera przy kazdym projeckie i potem przy zmianie programisty wdrażać nowego
w tok myślenia poprzednika?
A jest tu choć trochę jakiejś logiki czy tylko ciapanie kontrolek ?
Post by Wojciech Bancer
Post by Cezary Tomczyk
Post by Wojciech Bancer
I będą problemy z zarządzaniem projektem,
ludźmi i przede wszystkim wydajnością tych ludzi.
Najwyraźniej zrekrutowani zostali juniorzy.
Tak, tak. :)
--
Wojciech Bańcer
Paweł
Wojciech Bancer
2017-03-22 16:25:44 UTC
Permalink
Post by zpksoft
Post by Wojciech Bancer
Angular.js, React, d3, socket.io, jasmine, lodash, protractor,
express.js. Do tego wsparcie przez typescript, bootstrap, angular-material i wiele innych
(projekty są pisane przez lata już). To tak z grubsza Proponujesz to wszystko pisać
z palca od zera przy kazdym projeckie i potem przy zmianie programisty wdrażać nowego
w tok myślenia poprzednika?
A jest tu choć trochę jakiejś logiki czy tylko ciapanie kontrolek ?
Oczywiście że jest.
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-03-23 09:25:54 UTC
Permalink
Post by Wojciech Bancer
Post by zpksoft
Post by Wojciech Bancer
Angular.js, React, d3, socket.io, jasmine, lodash, protractor,
express.js. Do tego wsparcie przez typescript, bootstrap, angular-material i wiele innych
(projekty są pisane przez lata już). To tak z grubsza Proponujesz to wszystko pisać
z palca od zera przy kazdym projeckie i potem przy zmianie programisty wdrażać nowego
w tok myślenia poprzednika?
A jest tu choć trochę jakiejś logiki czy tylko ciapanie kontrolek ?
Oczywiście że jest.
--
Wojciech Bańcer
To dobrze :)

Generalnie takie sprawy jak np. komunikacja z serwerem powinny być zestandaryzowane. I rozumiem stosowanie jquery czy innych bibliotek które taką standaryzację załatwiają.

Ja dopracowałem się własnych rozwiązań w tym zakresie które zaspokajają w pełni moje potrzeby. Nawet myślałem, żeby spróbować gdzieś opublikować to rozwiązanie tylko na razie nie mam pomysłu na to.
Zniechęcają mnie też ataki na mnie z jakimi się od czasu do czasu spotykam od tych co "bronią" standardów.

Paweł
Borys Pogoreło
2017-03-23 20:47:25 UTC
Permalink
Post by zpksoft
Ja dopracowałem się własnych rozwiązań w tym zakresie które zaspokajają
w pełni moje potrzeby. Nawet myślałem, żeby spróbować gdzieś opublikować
to rozwiązanie tylko na razie nie mam pomysłu na to.
Github stoi otworem, społeczność oceni.
--
Borys Pogoreło
borys(#)leszno,edu,pl
zpksoft
2017-03-22 14:01:24 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Post by Wojciech Bancer
Bo jest. Tak jak kiedyś nowoczesnym było programowanie w C, a nie na kartach perforowanych.
A na kartach perforowanych to nie programowało się w C?
W języku maszynowym.
Post by zpksoft
Post by Wojciech Bancer
Zależy od skali projektu.
Zdecydowana większość "projektów" to proste stronki gdzie oczywiście w nagłówku musi być zmieniający się baner a w środku jquery :)
No i oczywiście wszystko pisane w joomli czy innym cms-ie.
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty dużo większe,
gdzie posłużenie się czystym javascriptem to jak pisanie gry w asemblerze.
I będą problemy z zarządzaniem projektem, ludźmi i przede wszystkim wydajnością
tych ludzi.
--
Wojciech Bańcer
Źle cdczytałeś to co napisałem.
Takie właśnie "projekty" skrytykowałem.

Nie używam żadnych cms-ów, to jest dla lamerów.
Mało kto wie że również MS Word jest cms-em. Prace można zapisać jako html z grafikami itp.
No, ale to nie jest programowanie.

Paweł
Wojciech Bancer
2017-03-22 16:17:23 UTC
Permalink
On 2017-03-22, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Nie używam żadnych cms-ów, to jest dla lamerów.
Nie są.
Post by zpksoft
Mało kto wie że również MS Word jest cms-em. Prace można zapisać jako html z grafikami itp.
Nie jest.
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-03-23 09:27:35 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Nie używam żadnych cms-ów, to jest dla lamerów.
Nie są.
Mamy różne zdania :)
Post by Wojciech Bancer
Post by zpksoft
Mało kto wie że również MS Word jest cms-em. Prace można zapisać jako html z grafikami itp.
Nie jest.
No dobra, może trochę przesadziłem.
Post by Wojciech Bancer
--
Wojciech Bańcer
Paweł
zpksoft
2017-03-22 14:02:26 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Post by Wojciech Bancer
Bo jest. Tak jak kiedyś nowoczesnym było programowanie w C, a nie na kartach perforowanych.
A na kartach perforowanych to nie programowało się w C?
W języku maszynowym.
Post by zpksoft
Post by Wojciech Bancer
Zależy od skali projektu.
Zdecydowana większość "projektów" to proste stronki gdzie oczywiście w nagłówku musi być zmieniający się baner a w środku jquery :)
No i oczywiście wszystko pisane w joomli czy innym cms-ie.
No jeśli takie masz, to ok. Ja w zdecydowanej większości mam projekty dużo większe,
gdzie posłużenie się czystym javascriptem to jak pisanie gry w asemblerze.
I będą problemy z zarządzaniem projektem, ludźmi i przede wszystkim wydajnością
tych ludzi.
To straszne.
Post by Wojciech Bancer
--
Wojciech Bańcer
Paweł
zpksoft
2017-03-19 07:52:10 UTC
Permalink
Post by Borys Pogoreło
ciach>
Ty mi raczej znajdź bank, który NIE korzysta z rozwiązań open-source.
Od razu Ci podpowiem: nie ma takich. PKO, mBank, BZWBK, Sandander, Polbank,
Citi Handlowy, cokolwiek nie znajdziesz, korzysta z open source garściami.
Przespałeś ostatnie 10-15 lat w IT? :)
--
Wojciech Bańcer
Wiem że niektóre korzystają. Bo mają programistów którzy wsiąkli w te tematy i nie mogą z nich wyjść. A potem się męczą. Niedopuszczalne jest żeby część logiki aplikacji bankowej znajdował się na serwerach zewnętrznych, więc muszą ściągnąć wszystkie źródła. Za chwilę dochodzą do wniosku że zostają w tyle bo framework ma nową wersję, cokolwiek by to znaczyło.
I zaczyna się burza. Ostatnia np w Citi, gdzie kasa biegała po kontach w sposób niemalże losowy ;)

To jest złe programowanie.

Paweł
Wojciech Bancer
2017-03-19 19:58:43 UTC
Permalink
Post by zpksoft
Post by Borys Pogoreło
ciach>
Ty mi raczej znajdź bank, który NIE korzysta z rozwiązań open-source.
Od razu Ci podpowiem: nie ma takich. PKO, mBank, BZWBK, Sandander, Polbank,
Citi Handlowy, cokolwiek nie znajdziesz, korzysta z open source garściami.
Przespałeś ostatnie 10-15 lat w IT? :)
Wiem że niektóre korzystają.
Poproszę jeszcze raz. Znajdź bank który nie korzysta.
Post by zpksoft
Bo mają programistów którzy wsiąkli w te tematy i nie mogą z nich wyjść. A potem się męczą.
Nie sądzę by ktokolwiek się tam męczył.

[...]
Post by zpksoft
To jest złe programowanie.
To co opowiadasz to jest brak wiedzy, a nie złe programowanie.
Możliwe, że z Twojej strony.
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-03-19 20:53:38 UTC
Permalink
Post by Wojciech Bancer
Post by zpksoft
Post by Borys Pogoreło
ciach>
Ty mi raczej znajdź bank, który NIE korzysta z rozwiązań open-source.
Od razu Ci podpowiem: nie ma takich. PKO, mBank, BZWBK, Sandander, Polbank,
Citi Handlowy, cokolwiek nie znajdziesz, korzysta z open source garściami.
Przespałeś ostatnie 10-15 lat w IT? :)
Wiem że niektóre korzystają.
Poproszę jeszcze raz. Znajdź bank który nie korzysta.
Post by zpksoft
Bo mają programistów którzy wsiąkli w te tematy i nie mogą z nich wyjść. A potem się męczą.
Nie sądzę by ktokolwiek się tam męczył.
[...]
Post by zpksoft
To jest złe programowanie.
To co opowiadasz to jest brak wiedzy, a nie złe programowanie.
Możliwe, że z Twojej strony.
--
Wojciech Bańcer
Nie zaperzaj się. Mam konto we wspomnianym banku więc wiem co ostatnio się działo. Oczywiście z ciekawości zajrzałem w kod strony więc wiem co piszę.

Przekornie jeszcze nawiążę do tej grupy programistów o której pisałeś. Otóż rewolucyjnych rozwiązań nie tworzą grupy.

Grupy tworzą takie np. Windows 10.

Paweł
Wojciech Bancer
2017-03-21 14:17:42 UTC
Permalink
On 2017-03-19, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Post by Wojciech Bancer
To co opowiadasz to jest brak wiedzy, a nie złe programowanie.
Możliwe, że z Twojej strony.
--
Wojciech Bańcer
Nie zaperzaj się. Mam konto we wspomnianym banku więc wiem co ostatnio się działo.
Też mam. Problem z podwójnym księgowaniem kwot z kart (bo chyba o tym mówisz, taki
był ostatnio u nich problem) nie jest problemem interfejsu użytkownika systemu
transakcyjnego.
Post by zpksoft
Oczywiście z ciekawości zajrzałem w kod strony więc wiem co piszę.
Wytworzyłeś związek przyczynowo-skutkowy bez żadnego uzasadnienia
i tylko na zasadzie "nie lubię jQuery" chyba.

Ja jeszcze mam konto w Raiffeisen-Polbank, mBanku, BZWBK, PKO BP, PeKaO S.A. i Aliorze.
Wszędzie używają min. jQuery. Zgodnie z Twoją wcześniejszą argumentacją to się zdarzyć
nie powinno, bo to instytucje finansowe.
Post by zpksoft
Przekornie jeszcze nawiążę do tej grupy programistów o której pisałeś.
Otóż rewolucyjnych rozwiązań nie tworzą grupy.
W dziedzinie programowania dokonujemy rozwoju ewolucyjnego, nie rewolucyjnego.
Podobnie jak nie dokonumemy rewolucji w językach mówionych.

Rewolucji to możesz dokonywać na polu algorytmiki, a ta nie zależy od języka.

Problem w tym, że odrzucając wszystkie narzędzia wytworzone przez community
"bo Ty wiesz lepiej i szybciej", to trochę tak jakbyś próbował na nowo
wymyślać koło, ignorując fakt że ktoś już wymyślił nie tylko koło, ale
i popierdala samochodem elektrycznym.

Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-21 16:43:51 UTC
Permalink
On 21/03/2017 15:17, Wojciech Bancer wrote:
[...]
Post by Wojciech Bancer
Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
Wg mnie problem w tym, że ludzie nie zadają sobie pytania: jakiego
rodzaju problem próbuję rozwiązać zanim skorzystam z rozwiązania [tu
wstaw dowolną nazwę frameworku, narzędzi, itd.]?

Zamiast tego podąrzają za tłumem.

Przypomina mi się rozmowa z jednym z menadżerów projektu:

PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.

Nie ma zbędnych narzędzi. Są za to złe zastosowania i przerost formy nad
treścią.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Wojciech Bancer
2017-03-21 17:43:44 UTC
Permalink
On 2017-03-21, Cezary Tomczyk <***@gmail.com> wrote:

[...]
Post by Cezary Tomczyk
PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.
No i? Ja mam na tony przykładów projektów utrzymywanych z dużym
trudem, bo nie został podjęty wysiłek refaktoru po pierwszych
programistach, którzy dziergali swoje cuda we własnych tylko sobie
znanych ścieżkach myślowych.

I potem śledź 10-letni kod i zastanawiaj się co autor (który już
dawno nie pracuje i ma to w pompie) miał na myśli :P

Frameworki przynajmniej potrafią standaryzować kod i ułatwiają
tego typu rzeczy.
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-22 12:39:02 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by Cezary Tomczyk
PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.
No i? Ja mam na tony przykładów projektów utrzymywanych z dużym
trudem, bo nie został podjęty wysiłek refaktoru po pierwszych
programistach, którzy dziergali swoje cuda we własnych tylko sobie
znanych ścieżkach myślowych.
I potem śledź 10-letni kod i zastanawiaj się co autor (który już
dawno nie pracuje i ma to w pompie) miał na myśli :P
Frameworki przynajmniej potrafią standaryzować kod i ułatwiają
tego typu rzeczy.
Ale ja nie mówię, że nie. Przeciwnie. Frameworki standaryzują pracę i to
jest fakt niezaprzeczalny. I odnośnie do Twojego "> No i?" - No i grunt
to jest zawsze dobranie narzędzi do problemu, a nie odwrotnie.
Post by Wojciech Bancer
Post by Cezary Tomczyk
No i? Ja mam na tony przykładów projektów utrzymywanych z dużym
trudem, bo nie został podjęty wysiłek refaktoru po pierwszych
programistach, którzy dziergali swoje cuda we własnych tylko sobie
znanych ścieżkach myślowych.
Też pracowałem w takich projektach, ale fakt jest taki, że na początku
drogi projektu wybrano takie, a nie inne rozwiązania. Być może słuszne
na ten moment, kiedy projekt startował. A jak wiemy, w naszym świecie co
roku zmieniają się technologie i podejścia, a my musimy z tym żyć.
Refactoring jest częścią procesu produkcji oprogramowania.
Post by Wojciech Bancer
Post by Cezary Tomczyk
I potem śledź 10-letni kod i zastanawiaj się co autor (który już
dawno nie pracuje i ma to w pompie) miał na myśli :P
A to swoją drogą. Ktoś po Tobie też będzie kiedyś poprawiał :P
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Borys Pogoreło
2017-03-21 21:16:40 UTC
Permalink
Post by Cezary Tomczyk
PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.
Urban legend, nie uwierzę w ostatnią linijkę ;)
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-22 12:39:53 UTC
Permalink
Post by Borys Pogoreło
Post by Cezary Tomczyk
PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.
Urban legend, nie uwierzę w ostatnią linijkę ;)
No cóż, jak jest PM, który jest tzw. nietechniczny, to tak to wygląda ;-)
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Borys Pogoreło
2017-03-23 00:11:48 UTC
Permalink
Post by Cezary Tomczyk
Post by Borys Pogoreło
Post by Cezary Tomczyk
PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.
Urban legend, nie uwierzę w ostatnią linijkę ;)
No cóż, jak jest PM, który jest tzw. nietechniczny, to tak to wygląda ;-)
Nie wierzę, że zrobił krok wstecz od Hype Driven Developement :)
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-23 09:44:37 UTC
Permalink
Post by Borys Pogoreło
Post by Cezary Tomczyk
Post by Borys Pogoreło
Post by Cezary Tomczyk
PM: Będziemy przechodzić na React teraz.
Ja: A jakiego rodzaju problemy tym rozwiążecie?
PM: No mamy problem z wydajnością.
Ja: A w którym konkretnie miejscu?
PM: No tak ogólnie.
Ja: To może nie jest problem frameworka, który macie obecnie, a bardziej
architektura, nadmierna ilość użytych narzędzi, zbyt wiele zewnętrznych
zależności, a może proces zarządzania zadaniami kuleje?
PM: Hm, dobre pytanie. Muszę to sprawdzić.
Urban legend, nie uwierzę w ostatnią linijkę ;)
No cóż, jak jest PM, który jest tzw. nietechniczny, to tak to wygląda ;-)
Nie wierzę, że zrobił krok wstecz od Hype Driven Developement :)
Na szczęście już nie muszę się martwić o skutki podjętych decyzji -)
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Roman Tyczka
2017-03-21 19:27:52 UTC
Permalink
Post by Wojciech Bancer
Post by zpksoft
Przekornie jeszcze nawiążę do tej grupy programistów o której pisałeś.
Otóż rewolucyjnych rozwiązań nie tworzą grupy.
W dziedzinie programowania dokonujemy rozwoju ewolucyjnego, nie rewolucyjnego.
Podobnie jak nie dokonumemy rewolucji w językach mówionych.
Rewolucji to możesz dokonywać na polu algorytmiki, a ta nie zależy od języka.
Problem w tym, że odrzucając wszystkie narzędzia wytworzone przez community
"bo Ty wiesz lepiej i szybciej", to trochę tak jakbyś próbował na nowo
wymyślać koło, ignorując fakt że ktoś już wymyślił nie tylko koło, ale
i popierdala samochodem elektrycznym.
Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
Po co Ty z nim rozmawiasz? To zwykły druciarz co dzierga jakieś krzywe
patenty w zespole jednoosobowym na zlecenie jednoosobowych firemek. Znam go
z innej grupy, tam też mędrkował i pouczał pisząc totalne bzdury, szkoda
czasu na dyskusje z amatorem, który nie ma bladego pojęcia o wzorcach,
metodykach i kodowaniu ogólnie.
--
pozdrawiam
Roman Tyczka
zpksoft
2017-03-22 14:28:01 UTC
Permalink
Post by Roman Tyczka
Post by Wojciech Bancer
Post by zpksoft
Przekornie jeszcze nawiążę do tej grupy programistów o której pisałeś.
Otóż rewolucyjnych rozwiązań nie tworzą grupy.
W dziedzinie programowania dokonujemy rozwoju ewolucyjnego, nie rewolucyjnego.
Podobnie jak nie dokonumemy rewolucji w językach mówionych.
Rewolucji to możesz dokonywać na polu algorytmiki, a ta nie zależy od języka.
Problem w tym, że odrzucając wszystkie narzędzia wytworzone przez community
"bo Ty wiesz lepiej i szybciej", to trochę tak jakbyś próbował na nowo
wymyślać koło, ignorując fakt że ktoś już wymyślił nie tylko koło, ale
i popierdala samochodem elektrycznym.
Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
Po co Ty z nim rozmawiasz? To zwykły druciarz co dzierga jakieś krzywe
patenty w zespole jednoosobowym na zlecenie jednoosobowych firemek. Znam go
z innej grupy, tam też mędrkował i pouczał pisząc totalne bzdury, szkoda
czasu na dyskusje z amatorem, który nie ma bladego pojęcia o wzorcach,
metodykach i kodowaniu ogólnie.
--
pozdrawiam
Roman Tyczka
Pijesz do mnie? Nie znając mojej pracy?
Kiedy wspomniałeś o innej grupie przypomniała mi się dyskusja o indeksach w bazie, gdzie rzucono mi się do gardła kiedy skrytykowałem indeksy liczbowe.
Nie chciało mi się tłumaczyć. Jeżeli ktoś w dyskusji wychodzi z założenia że są rozwiązanie jedynie słuszne..

Jeżeli masz coś do mnie to proszę merytorycznie.

Paweł
Roman Tyczka
2017-03-22 21:42:10 UTC
Permalink
Post by zpksoft
Post by Roman Tyczka
Po co Ty z nim rozmawiasz? To zwykły druciarz co dzierga jakieś krzywe
patenty w zespole jednoosobowym na zlecenie jednoosobowych firemek. Znam go
z innej grupy, tam też mędrkował i pouczał pisząc totalne bzdury, szkoda
czasu na dyskusje z amatorem, który nie ma bladego pojęcia o wzorcach,
metodykach i kodowaniu ogólnie.
Pijesz do mnie? Nie znając mojej pracy?
Czytam Twoje mierne wypociny.
Post by zpksoft
Kiedy wspomniałeś o innej grupie przypomniała mi się dyskusja o indeksach w bazie, gdzie rzucono mi się do gardła kiedy skrytykowałem indeksy liczbowe.
Nie chciało mi się tłumaczyć. Jeżeli ktoś w dyskusji wychodzi z założenia że są rozwiązanie jedynie słuszne..
Bredzisz i bredziłem nie w jednej tylko dyskusji.
Zasadniczo każda Twoja wypowiedź w skrócie wygląda tak:

- nie potrzebuje żadnych dokonać ludzi czy firm zewwnętrznych, każde koło
wynajdę sobie sam... a co? wolno mi!

I masz rację wolno Ci, Twoja piaskownica, baw się i lamerz do woli, tylko
nie staraj się innych przekonywać, że skoro sam nie potrafisz skorzystać z
dostępnych narzędzi i wszystko musisz tworzyć od zera to jest to lepsza i
tańsza metoda. NIE JEST.
Post by zpksoft
Jeżeli masz coś do mnie to proszę merytorycznie.
Wszystko co tu piszesz to bełkot amatora ubrany w stwierdzenia starego
wygi. Pieprzysz trzy po trzy na każdy temat, a już z Wordem i CMSami dałeś
popis nad popisami. Gratuluje profesjonalizmu!
--
pozdrawiam
Roman Tyczka
zpksoft
2017-03-23 09:30:43 UTC
Permalink
Post by Roman Tyczka
Post by zpksoft
Post by Roman Tyczka
Po co Ty z nim rozmawiasz? To zwykły druciarz co dzierga jakieś krzywe
patenty w zespole jednoosobowym na zlecenie jednoosobowych firemek. Znam go
z innej grupy, tam też mędrkował i pouczał pisząc totalne bzdury, szkoda
czasu na dyskusje z amatorem, który nie ma bladego pojęcia o wzorcach,
metodykach i kodowaniu ogólnie.
Pijesz do mnie? Nie znając mojej pracy?
Czytam Twoje mierne wypociny.
Post by zpksoft
Kiedy wspomniałeś o innej grupie przypomniała mi się dyskusja o indeksach w bazie, gdzie rzucono mi się do gardła kiedy skrytykowałem indeksy liczbowe.
Nie chciało mi się tłumaczyć. Jeżeli ktoś w dyskusji wychodzi z założenia że są rozwiązanie jedynie słuszne..
Bredzisz i bredziłem nie w jednej tylko dyskusji.
- nie potrzebuje żadnych dokonać ludzi czy firm zewwnętrznych, każde koło
wynajdę sobie sam... a co? wolno mi!
I masz rację wolno Ci, Twoja piaskownica, baw się i lamerz do woli, tylko
nie staraj się innych przekonywać, że skoro sam nie potrafisz skorzystać z
dostępnych narzędzi i wszystko musisz tworzyć od zera to jest to lepsza i
tańsza metoda. NIE JEST.
Post by zpksoft
Jeżeli masz coś do mnie to proszę merytorycznie.
Wszystko co tu piszesz to bełkot amatora ubrany w stwierdzenia starego
wygi. Pieprzysz trzy po trzy na każdy temat, a już z Wordem i CMSami dałeś
popis nad popisami. Gratuluje profesjonalizmu!
--
pozdrawiam
Roman Tyczka
Aż ziejesz nienawiścią.

Daj link to jakiejkolwiek strony której jesteś autorem, chciałbym zobaczyć czy warto z tobą rozmawiać.

Czekam.

Paweł
zpksoft
2017-03-22 14:20:10 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Post by Wojciech Bancer
To co opowiadasz to jest brak wiedzy, a nie złe programowanie.
Możliwe, że z Twojej strony.
--
Wojciech Bańcer
Nie zaperzaj się. Mam konto we wspomnianym banku więc wiem co ostatnio się działo.
Też mam. Problem z podwójnym księgowaniem kwot z kart (bo chyba o tym mówisz, taki
był ostatnio u nich problem) nie jest problemem interfejsu użytkownika systemu
transakcyjnego.
Nie rozdzielał bym tego.
Post by Wojciech Bancer
Post by zpksoft
Oczywiście z ciekawości zajrzałem w kod strony więc wiem co piszę.
Wytworzyłeś związek przyczynowo-skutkowy bez żadnego uzasadnienia
i tylko na zasadzie "nie lubię jQuery" chyba.
Trochę tak.
Post by Wojciech Bancer
Ja jeszcze mam konto w Raiffeisen-Polbank, mBanku, BZWBK, PKO BP, PeKaO S.A. i Aliorze.
Po co Ci tyle kont?
Post by Wojciech Bancer
Wszędzie używają min. jQuery. Zgodnie z Twoją wcześniejszą argumentacją to się zdarzyć
nie powinno, bo to instytucje finansowe.
Nie powinno. Nie zmienię zdania w tym temacie.
Post by Wojciech Bancer
Post by zpksoft
Przekornie jeszcze nawiążę do tej grupy programistów o której pisałeś.
Otóż rewolucyjnych rozwiązań nie tworzą grupy.
W dziedzinie programowania dokonujemy rozwoju ewolucyjnego, nie rewolucyjnego.
Podobnie jak nie dokonumemy rewolucji w językach mówionych.
Rewolucji to możesz dokonywać na polu algorytmiki, a ta nie zależy od języka.
Problem w tym, że odrzucając wszystkie narzędzia wytworzone przez community
"bo Ty wiesz lepiej i szybciej", to trochę tak jakbyś próbował na nowo
wymyślać koło, ignorując fakt że ktoś już wymyślił nie tylko koło, ale
i popierdala samochodem elektrycznym.
Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
Te biblioteki powstały ponieważ istnieje problem w zapanowaniu nad aplikacją bezstanową klient-serwer jaką jest aplikacja www.
Dla mnie to zbędne narzędzia bo dopracowałem się własnego, lepszego. Oczywiście to moje zdanie. Gdybym miał inne zdanie to stosował bym te (np) biblioteki.

Nawiązując do poprzedniego akapitu dot. ewolucji-rewolucji. Zobacz jak powstały te biblioteki. Nie przez ewolucję w grupach, tylko pomysły pojedynczych ludzi.
Post by Wojciech Bancer
--
Wojciech Bańcer
Paweł
Wojciech Bancer
2017-03-22 16:22:01 UTC
Permalink
On 2017-03-22, zpksoft <***@op.pl> wrote:

[...]
Post by zpksoft
Post by Wojciech Bancer
Też mam. Problem z podwójnym księgowaniem kwot z kart (bo chyba o tym mówisz, taki
był ostatnio u nich problem) nie jest problemem interfejsu użytkownika systemu
transakcyjnego.
Nie rozdzielał bym tego.
Ale związku przyczynowo-skutkowego nie umiesz wskazać.
Post by zpksoft
Post by Wojciech Bancer
Ja jeszcze mam konto w Raiffeisen-Polbank, mBanku, BZWBK, PKO BP, PeKaO S.A. i Aliorze.
Po co Ci tyle kont?
A czemu nie? Wolny kraj.
Post by zpksoft
Post by Wojciech Bancer
Wszędzie używają min. jQuery. Zgodnie z Twoją wcześniejszą argumentacją to się zdarzyć
nie powinno, bo to instytucje finansowe.
Nie powinno. Nie zmienię zdania w tym temacie.
Ale masz jakieś wsparcie, czy to tylko Twoje Głębokie Przeświadczenie? :)
Post by zpksoft
Post by Wojciech Bancer
Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
Te biblioteki powstały ponieważ istnieje problem w zapanowaniu nad aplikacją bezstanową klient-serwer jaką jest aplikacja www.
Dla mnie to zbędne narzędzia bo dopracowałem się własnego, lepszego. Oczywiście to moje zdanie.
Aha. :D :D :D Własne i lepsze (TM).
Witamy w latach 90-tych.
Post by zpksoft
Gdybym miał inne zdanie to stosował bym te (np) biblioteki.
Po prostu i brutalnie: brak Ci umiejętności, nie znasz tych narzędzi
więc z gruntu je krytykujesz.
--
Wojciech Bańcer
***@gmail.com
zpksoft
2017-03-23 09:56:11 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by zpksoft
Post by Wojciech Bancer
Też mam. Problem z podwójnym księgowaniem kwot z kart (bo chyba o tym mówisz, taki
był ostatnio u nich problem) nie jest problemem interfejsu użytkownika systemu
transakcyjnego.
Nie rozdzielał bym tego.
Ale związku przyczynowo-skutkowego nie umiesz wskazać.
Bez przesady. Szkoda na to czasu. Niemnie fakt, masz rację.
Post by Wojciech Bancer
Post by zpksoft
Post by Wojciech Bancer
Ja jeszcze mam konto w Raiffeisen-Polbank, mBanku, BZWBK, PKO BP, PeKaO S.A. i Aliorze.
Po co Ci tyle kont?
A czemu nie? Wolny kraj.
Tak tylko spytałem :P
Post by Wojciech Bancer
Post by zpksoft
Post by Wojciech Bancer
Wszędzie używają min. jQuery. Zgodnie z Twoją wcześniejszą argumentacją to się zdarzyć
nie powinno, bo to instytucje finansowe.
Nie powinno. Nie zmienię zdania w tym temacie.
Ale masz jakieś wsparcie, czy to tylko Twoje Głębokie Przeświadczenie? :)
Wsparcie? Co masz konkretnie na myśli?
Post by Wojciech Bancer
Post by zpksoft
Post by Wojciech Bancer
Ile wysiłku trzeba włożyć wg Ciebie żeby zbudować narzędzie takie jak
Angular, czy React? Czy może uważasz że to zbędne narzędzia?
Te biblioteki powstały ponieważ istnieje problem w zapanowaniu nad aplikacją bezstanową klient-serwer jaką jest aplikacja www.
Dla mnie to zbędne narzędzia bo dopracowałem się własnego, lepszego. Oczywiście to moje zdanie.
Aha. :D :D :D Własne i lepsze (TM).
Witamy w latach 90-tych.
Post by zpksoft
Gdybym miał inne zdanie to stosował bym te (np) biblioteki.
Po prostu i brutalnie: brak Ci umiejętności, nie znasz tych narzędzi
więc z gruntu je krytykujesz.
Nie krytykuję tych narzędzi. Źle to odebrałeś.
A co do umiejętności to stwierdzę tyko tyle, że gdybym ich nie miał to właśnie wtedy sięgnął bym pewnie do wspomnianych narzędzi zamiast targnąć się na utworzenie własnego rozwiązania.

Dam tylko ogólny przykład z mojej logiki, choć już dawno jesteśmy OT w tym wątku.

Komunikacja z serwerem wygląda z poziomu aplikacji tak:

wywołuję funkcję:

fillBuf(sender, [tablica_parametrow], 'id_elementu_docelowego', function(buf){
//czynności "pozaautomatycne"
})


Działa to mniej więcej tak:

sender- to id kontrolki generującej interakcję z serwerem (ale niekoniecznie)
[tablica_parametrow] - ogólnie to określiłem, są tu dwie tablice: tablica id elementów z których silnik (czyli moja biblioteka) wyciąga wartości parametrów, to co jest akurat charakterystyczne z danej kontrolki (text, innerHTML, checked itp)- czyli wystarczy, że podam samą listę id a dane z kontrolek zostaną wyciągnięte i przesłane na serwer; oraz tablica parametrów "z palca"

'id_elementu_docelowego' - jeżeli zostanie podany to jego innerHTML zostanie wypełniony danym zwróconymi przez serwer.

function(buf) - funkcja startuje po otrzymaniu zwrotki z serwera w postaci stringu tu nazwanego "buf". Może to być zawartość jakiegoś diva, lub dowolne dane. Funkcji może oczywiście w tym wywołaniu fillBuf() nie być wcale. Zależy od logiki aplikacji.

Podstawowa obsługa błędów, również tych z serwera, leży po stronie silnika.

Mam nadzieję, że napisałem czytelnie. Ten kod w połączeniu z cytowanym przezemnie wcześniej (if() elseif() ...) daje schemat aplikacji.
Prosty i naprawdę szybki do implementacji.
Post by Wojciech Bancer
--
Wojciech Bańcer
Paweł
Borys Pogoreło
2017-03-20 17:24:10 UTC
Permalink
Post by zpksoft
Może się też okazać że stosując jakieś tam frameworki zrobisz zadanie
znacznie wolniej niż ja bo będziesz musiał się najpierw tego nauczyć.
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Post by zpksoft
Kolejna sprawa to aplikacje o wysokim stopniu bezpieczeństwa. Oprzesz je
na freewarowym frameworku? Np. aplikację dla banku?
Straszni amatorzy muszą pracować w tych bankach, bo w systemie
transakcyjnym mBanku widzę jQuery, jQuery UI i tonę wtyczek.

https://online.mbank.pl/combres.axd/LibsJs/301586628/
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-21 07:38:15 UTC
Permalink
Post by Borys Pogoreło
Post by zpksoft
Może się też okazać że stosując jakieś tam frameworki zrobisz zadanie
znacznie wolniej niż ja bo będziesz musiał się najpierw tego nauczyć.
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Oj, nie przesadzajmy z tą ogromną niekompatybilnością. Na dzień
dzisiejszy osoboście rzadko mi się zdarza, że muszę spędzić więcej czasu
na rozwiązaniu problemu z kompatybilnością. W 99% wszystko działa nieźle.

Oczywiście, problem pojawia się na pewno, kiedy chce się zastosować coś
jak CSS grid. ;-)
Post by Borys Pogoreło
Post by zpksoft
Kolejna sprawa to aplikacje o wysokim stopniu bezpieczeństwa. Oprzesz je
na freewarowym frameworku? Np. aplikację dla banku?
Straszni amatorzy muszą pracować w tych bankach, bo w systemie
transakcyjnym mBanku widzę jQuery, jQuery UI i tonę wtyczek.
https://online.mbank.pl/combres.axd/LibsJs/301586628/
No ale ilość użytych narzędzi/libów/itp. nie jest wprost proporcjonalna
do jakości. Ilekroć pytam programistów o to, dlaczego korzystają z
jQuery czy innego narzędzia, to odpowiedź jest jedna - z
przyzwyczajenia. No a potem takie aplikacje puchną bez limitu.

Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację. Sam tak robię. Korpo zasady to już inna bajka. Tam w
większości przypadków nie mogłem zaobserwować postępu :-(
--
Cezary Tomczyk
http://www.ctomczyk.pl/
zpksoft
2017-03-21 10:56:46 UTC
Permalink
Post by Cezary Tomczyk
Post by Borys Pogoreło
Post by zpksoft
Może się też okazać że stosując jakieś tam frameworki zrobisz zadanie
znacznie wolniej niż ja bo będziesz musiał się najpierw tego nauczyć.
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Oj, nie przesadzajmy z tą ogromną niekompatybilnością. Na dzień
dzisiejszy osoboście rzadko mi się zdarza, że muszę spędzić więcej czasu
na rozwiązaniu problemu z kompatybilnością. W 99% wszystko działa nieźle.
Oczywiście, problem pojawia się na pewno, kiedy chce się zastosować coś
jak CSS grid. ;-)
Post by Borys Pogoreło
Post by zpksoft
Kolejna sprawa to aplikacje o wysokim stopniu bezpieczeństwa. Oprzesz je
na freewarowym frameworku? Np. aplikację dla banku?
Straszni amatorzy muszą pracować w tych bankach, bo w systemie
transakcyjnym mBanku widzę jQuery, jQuery UI i tonę wtyczek.
https://online.mbank.pl/combres.axd/LibsJs/301586628/
No ale ilość użytych narzędzi/libów/itp. nie jest wprost proporcjonalna
do jakości. Ilekroć pytam programistów o to, dlaczego korzystają z
jQuery czy innego narzędzia, to odpowiedź jest jedna - z
przyzwyczajenia. No a potem takie aplikacje puchną bez limitu.
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację. Sam tak robię.
Właśnie. Też to zauważyłem. I jest to budujące.
Post by Cezary Tomczyk
Korpo zasady to już inna bajka. Tam w
większości przypadków nie mogłem zaobserwować postępu :-(
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Paweł
Wojciech Bancer
2017-03-21 14:02:56 UTC
Permalink
On 2017-03-21, Cezary Tomczyk <***@gmail.com> wrote:

[...]
Post by Cezary Tomczyk
Post by Borys Pogoreło
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Oj, nie przesadzajmy z tą ogromną niekompatybilnością. Na dzień
dzisiejszy osoboście rzadko mi się zdarza, że muszę spędzić więcej czasu
na rozwiązaniu problemu z kompatybilnością. W 99% wszystko działa nieźle.
A to już zależy z jak bardzo zaawansowanego ES korzystasz i co masz do
zrobienia. Dla przykładu generowanie plików binarnych po stronie frontendu
plus ich download potrafi sprawić problemy (np. z Safari).
Post by Cezary Tomczyk
Oczywiście, problem pojawia się na pewno, kiedy chce się zastosować coś
jak CSS grid. ;-)
IE ma całkiem sporo niedoróbek jeszcze:
https://kangax.github.io/compat-table/es6/
A z nowych rzeczy, to już w ogóle nie ma.
Post by Cezary Tomczyk
Post by Borys Pogoreło
Straszni amatorzy muszą pracować w tych bankach, bo w systemie
transakcyjnym mBanku widzę jQuery, jQuery UI i tonę wtyczek.
https://online.mbank.pl/combres.axd/LibsJs/301586628/
No ale ilość użytych narzędzi/libów/itp. nie jest wprost proporcjonalna
do jakości. Ilekroć pytam programistów o to, dlaczego korzystają z
jQuery czy innego narzędzia, to odpowiedź jest jedna - z
przyzwyczajenia. No a potem takie aplikacje puchną bez limitu.
Ale to nie jest argument żeby nie używać tooli/frameworków. To jest argument
by dokonywać refaktoru kodu i używać go porządnie. Ja jestem zwolennikiem
zasady, że w stabilnym projekcie do każdej dodanej zależności albo należy
dodać solidne uzasadnienie, albo należy jakąś inną zależność usunąć.
Post by Cezary Tomczyk
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację.
I żeby jeszcze przeglądarki masowo wspierały owe "dzisiejsze implementacje" :P
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-21 16:52:42 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by Cezary Tomczyk
Post by Borys Pogoreło
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Oj, nie przesadzajmy z tą ogromną niekompatybilnością. Na dzień
dzisiejszy osoboście rzadko mi się zdarza, że muszę spędzić więcej czasu
na rozwiązaniu problemu z kompatybilnością. W 99% wszystko działa nieźle.
A to już zależy z jak bardzo zaawansowanego ES korzystasz i co masz do
zrobienia. Dla przykładu generowanie plików binarnych po stronie frontendu
plus ich download potrafi sprawić problemy (np. z Safari).
To, że Safari sprawia z tym problemy, to jest osobna sprawa i żadna
biblioteka tego nie rozwiąże. ;-)
Post by Wojciech Bancer
Post by Cezary Tomczyk
Oczywiście, problem pojawia się na pewno, kiedy chce się zastosować coś
jak CSS grid. ;-)
https://kangax.github.io/compat-table/es6/
A z nowych rzeczy, to już w ogóle nie ma.
Nic na siłę. Napisane porządnej aplikacji bez const/let i innych z ES6,
jest jak najbardziej możliwe.
Post by Wojciech Bancer
Post by Cezary Tomczyk
Post by Borys Pogoreło
Straszni amatorzy muszą pracować w tych bankach, bo w systemie
transakcyjnym mBanku widzę jQuery, jQuery UI i tonę wtyczek.
https://online.mbank.pl/combres.axd/LibsJs/301586628/
No ale ilość użytych narzędzi/libów/itp. nie jest wprost proporcjonalna
do jakości. Ilekroć pytam programistów o to, dlaczego korzystają z
jQuery czy innego narzędzia, to odpowiedź jest jedna - z
przyzwyczajenia. No a potem takie aplikacje puchną bez limitu.
Ale to nie jest argument żeby nie używać tooli/frameworków. To jest argument
Nie mówię nie używać, ale jeśli coś da się zrobić prościej, to dlaczego
nie :-)
Post by Wojciech Bancer
by dokonywać refaktoru kodu i używać go porządnie. Ja jestem zwolennikiem
zasady, że w stabilnym projekcie do każdej dodanej zależności albo należy
dodać solidne uzasadnienie, albo należy jakąś inną zależność usunąć.
Ja bym jeszcze dodał: jeśli wszystkie unit i inne testy passed, to
refactoring odbył się pomyślnie ;-)
Post by Wojciech Bancer
Post by Cezary Tomczyk
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację.
I żeby jeszcze przeglądarki masowo wspierały owe "dzisiejsze implementacje" :P
No cóż. Idealnie nigdy nie będzie, ale niektórzy już piszą w ES6 a
potem... transpilują to do ES5 za pomocą popularnego Babel-a (Babla? :-)).
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Wojciech Bancer
2017-03-21 17:39:41 UTC
Permalink
On 2017-03-21, Cezary Tomczyk <***@gmail.com> wrote:

[...]
Post by Cezary Tomczyk
Post by Wojciech Bancer
https://kangax.github.io/compat-table/es6/
A z nowych rzeczy, to już w ogóle nie ma.
Nic na siłę. Napisane porządnej aplikacji bez const/let i innych z ES6,
jest jak najbardziej możliwe.
Ale gdzie ja twierdziłem, że to nie jest możliwe?
BA! Napisanie porządnej aplikacji w assemblerze jest możliwe!
Tylko _kosztuje_ więcej, jest mniej skalowalne, gorzej zarządzalne itp. itd.
Jak masz 2 programistów na krzyż i nielimitowany budżet, to możesz
sobie nawet dziergać w kodzie maszynowym.
Post by Cezary Tomczyk
Post by Wojciech Bancer
Ale to nie jest argument żeby nie używać tooli/frameworków. To jest argument
Nie mówię nie używać, ale jeśli coś da się zrobić prościej, to dlaczego
nie :-)
Toż cały czas kontruję, że _z wykorzystaniem_ frameworka jest prościej.
I łatwiej kodem zarządzać, bo całość (włącznie z organizacją tegoż) nie
siedzi w głowie 1 człowieka, są określone standardy pisania itp. itd.
Post by Cezary Tomczyk
Post by Wojciech Bancer
Post by Cezary Tomczyk
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację.
I żeby jeszcze przeglądarki masowo wspierały owe "dzisiejsze implementacje" :P
No cóż. Idealnie nigdy nie będzie, ale niektórzy już piszą w ES6 a
potem... transpilują to do ES5 za pomocą popularnego Babel-a (Babla? :-)).
Babel wszystkiego idealnie nie załatwi.
--
Wojciech Bańcer
***@gmail.com
Cezary Tomczyk
2017-03-22 12:42:45 UTC
Permalink
Post by Wojciech Bancer
[...]
Post by Cezary Tomczyk
Post by Wojciech Bancer
https://kangax.github.io/compat-table/es6/
A z nowych rzeczy, to już w ogóle nie ma.
Nic na siłę. Napisane porządnej aplikacji bez const/let i innych z ES6,
jest jak najbardziej możliwe.
Ale gdzie ja twierdziłem, że to nie jest możliwe?
BA! Napisanie porządnej aplikacji w assemblerze jest możliwe!
Tylko _kosztuje_ więcej, jest mniej skalowalne, gorzej zarządzalne itp. itd.
Jak masz 2 programistów na krzyż i nielimitowany budżet, to możesz
sobie nawet dziergać w kodzie maszynowym.
Post by Cezary Tomczyk
Post by Wojciech Bancer
Ale to nie jest argument żeby nie używać tooli/frameworków. To jest argument
Nie mówię nie używać, ale jeśli coś da się zrobić prościej, to dlaczego
nie :-)
Toż cały czas kontruję, że _z wykorzystaniem_ frameworka jest prościej.
I łatwiej kodem zarządzać, bo całość (włącznie z organizacją tegoż) nie
siedzi w głowie 1 człowieka, są określone standardy pisania itp. itd.
Eh, myślę, że obaj mamy zbieżne poglądy, tylko inaczej nieco
przedstawiane. :-)
Post by Wojciech Bancer
Post by Cezary Tomczyk
Post by Wojciech Bancer
Post by Cezary Tomczyk
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację.
I żeby jeszcze przeglądarki masowo wspierały owe "dzisiejsze implementacje" :P
No cóż. Idealnie nigdy nie będzie, ale niektórzy już piszą w ES6 a
potem... transpilują to do ES5 za pomocą popularnego Babel-a (Babla? :-)).
Babel wszystkiego idealnie nie załatwi.
Naturalnie, że nie.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Borys Pogoreło
2017-03-21 21:12:57 UTC
Permalink
Post by Cezary Tomczyk
Post by Borys Pogoreło
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Oj, nie przesadzajmy z tą ogromną niekompatybilnością. Na dzień
dzisiejszy osoboście rzadko mi się zdarza, że muszę spędzić więcej czasu
na rozwiązaniu problemu z kompatybilnością. W 99% wszystko działa nieźle.
Bo twórcy przeglądarek w końcu zaczęli czytać dokumentację, zamiast ją
wymyślać. Jednak to nie znaczy, że problemów nie ma, a zwłaszcza braków w
jakiejś konkretnej przeglądarce (najciekawiej jest, gdy coś nie działa w
Safari mobilnym, a w pełnym tak).
Post by Cezary Tomczyk
Oczywiście, problem pojawia się na pewno, kiedy chce się zastosować coś
jak CSS grid. ;-)
Albo choćby flexbox. Dostępny od lat, ale nie dość, że są trzy wersje, to
jeszcze implementacje mają masę błędów.
Post by Cezary Tomczyk
Post by Borys Pogoreło
https://online.mbank.pl/combres.axd/LibsJs/301586628/
No ale ilość użytych narzędzi/libów/itp. nie jest wprost proporcjonalna
do jakości. Ilekroć pytam programistów o to, dlaczego korzystają z
jQuery czy innego narzędzia, to odpowiedź jest jedna - z
przyzwyczajenia. No a potem takie aplikacje puchną bez limitu.
Ja bym odpowiedział, że z wygody. Inny problem to pluginy, które albo są
małe i nie robią tego, co chcesz albo mają setkę opcji i ważą 100KB sztuka.
Post by Cezary Tomczyk
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację. Sam tak robię. Korpo zasady to już inna bajka. Tam w
większości przypadków nie mogłem zaobserwować postępu :-(
Programista jQuery jest tańszy ;)
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-22 12:51:39 UTC
Permalink
Post by Borys Pogoreło
Post by Cezary Tomczyk
Post by Borys Pogoreło
Tak, na pewno zajmie to dłużej, niż przekopywanie się przez specyfikacje JS
i historie wszelkich niekompatybilności, a później próba zapamiętania tego.
Oj, nie przesadzajmy z tą ogromną niekompatybilnością. Na dzień
dzisiejszy osoboście rzadko mi się zdarza, że muszę spędzić więcej czasu
na rozwiązaniu problemu z kompatybilnością. W 99% wszystko działa nieźle.
Bo twórcy przeglądarek w końcu zaczęli czytać dokumentację, zamiast ją
wymyślać. Jednak to nie znaczy, że problemów nie ma, a zwłaszcza braków w
jakiejś konkretnej przeglądarce (najciekawiej jest, gdy coś nie działa w
Safari mobilnym, a w pełnym tak).
Absolutnie podzielam Twoje zdanie.
Post by Borys Pogoreło
Post by Cezary Tomczyk
Oczywiście, problem pojawia się na pewno, kiedy chce się zastosować coś
jak CSS grid. ;-)
Albo choćby flexbox. Dostępny od lat, ale nie dość, że są trzy wersje, to
jeszcze implementacje mają masę błędów.
Nie ma lekko :-) Ale dzięki temu mamy też pracę, bo jakby było idealnie,
to nie bylibyśmy potrzebni :D
Post by Borys Pogoreło
Post by Cezary Tomczyk
Post by Borys Pogoreło
https://online.mbank.pl/combres.axd/LibsJs/301586628/
No ale ilość użytych narzędzi/libów/itp. nie jest wprost proporcjonalna
do jakości. Ilekroć pytam programistów o to, dlaczego korzystają z
jQuery czy innego narzędzia, to odpowiedź jest jedna - z
przyzwyczajenia. No a potem takie aplikacje puchną bez limitu.
Ja bym odpowiedział, że z wygody. Inny problem to pluginy, które albo są
małe i nie robią tego, co chcesz albo mają setkę opcji i ważą 100KB sztuka.
No i musimy z tym żyć. Czasem jednak szlag mnie już trafia i wychodzi na
to, że szybciej sam napiszę coś (włączając w to unit testy), niż znajdę
coś, co ma działać tak, jak ja chcę (lub określone w specyfikacji) :-)

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. Patrz:
http://www.ctomczyk.pl/why-i-switched-to-only-nodejs-npm-and-stopped-using-grunt/767/).

No więc napisałem cały build process korzystając nawet z tych samym npm
pakietów i wreszcie działa tak, jak trzeba. I nie, nie spędziłem nad tym
wiele miesięcy. Ale, to są wyjątki ;-)
Post by Borys Pogoreło
Post by Cezary Tomczyk
Moim zdaniem, dzisiejsze implementacje ECMAScript są na tyle dobre, że
mogę spokojnie uznać, że bez wielu ekstra rozwiązań da się napisać dobrą
aplikację. Sam tak robię. Korpo zasady to już inna bajka. Tam w
większości przypadków nie mogłem zaobserwować postępu :-(
Programista jQuery jest tańszy ;)
Możliwe. Nie można tego wykluczyć :-)
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Borys Pogoreło
2017-03-23 00:27:04 UTC
Permalink
Post by Cezary Tomczyk
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.
Post by Cezary Tomczyk
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ś...

Widzę, że w komentarzach Ci napisali w sumie to samo ;)
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-23 09:41:11 UTC
Permalink
Post by Borys Pogoreło
Post by Cezary Tomczyk
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.
Post by Borys Pogoreło
Post by Cezary Tomczyk
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 ;-)
Post by Borys Pogoreło
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/
Borys Pogoreło
2017-03-23 20:46:26 UTC
Permalink
Post by Cezary Tomczyk
Post by Borys Pogoreło
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.
A nie widzę, byś go używał. Do tego to by jeszcze bardzo zaciemniło Twoje
rozwiązanie, zwłaszcza jakbyś musiał zsynchronizować kilka promises. Nie
wspominając już o zabawie z łapaniem wyjątków, itd. Ze strumieniami jest
znacznie łatwiej, do ich scalania i synchronizowania masz gotowe narzędzia,
a ich użycie to 1-2 linijki.
Post by Cezary Tomczyk
To żadna kombinacja. Przypatrz się temu dokładnie. Bierzesz pakiet npm i
używasz go całkiem normalnie: wejście -> wyjście.
A po drodze odpalasz binarkę CLI eslint, musisz ją skonfigurować,
samodzielnie obsłużyć błędy i do tego zupełnie nie widać, co jest wynikiem
działania tej funkcji. Coś tam sobie leci w pętli i nie bardzo wiadomo, co
się dzieje i gdzie szukać efektów (co to jest "report" i jak go czytać? co
to jest "formatter" i czemu pojawia się dopiero na końcu, choć nazwa
wskazuje na coś potrzebnego w trakcie procesu?). A całość jest długa na dwa
ekrany. To nie jest proste rozwiązanie. Idealizujesz je, bo jesteś autorem.
Proste rozwiązanie to jest wziąć garść plików, złączyć je w jeden strumień,
wrzucić w eslint z konfiguracją i coś zrobić ze strumieniem wyjściowym. I
nie przejmować się zanadto obsługą błędów, bo robi to za nas narzędzie.
Post by Cezary Tomczyk
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
Ja mam nieodparte wrażenie, że gulpa nawet nie spróbowałeś na dobre, bo
wcześniej stworzyłeś to swoje rozwiązanie.
Post by Cezary Tomczyk
1. Definiujesz co chcesz osiągnąć.
2. Dobierasz sobie pakiet npm.
3. Piszesz kilka linijek kodu, by przekazać parametry do pakietu npm i tyle.
No popatrz, opisałeś gulpa ;)

Hint: nikt Ci nie broni używać pakietów npm w procesie gulpa. Prościej
jednak jest trzymać się konwencji.
Post by Cezary Tomczyk
* Usuwam niepotrzebną zależność od Grunt-a/Gulp-a
To nie jest argument.
Post by Cezary Tomczyk
* Nie muszę czekać, aż autor pakietu dla Grunt-a/Gulp-a uaktualni mi go
Pakiety npm też nie zawsze są aktualne.
Post by Cezary Tomczyk
* Nie muszę nic hackować, bo albo korzystam z gotowych pakietów npm
(jeśli są wystarczające), albo piszę sam.
A czym jest hackowanie, jak nie tym ostatnim? ;)

Nawiasem mówiąc pakiety gulp nie są jakieś przesadnie skomplikowane.

gulp-babel to prosty wrapper na moduł npm i wygląda tak:
https://github.com/babel/gulp-babel/blob/master/index.js
Post by Cezary Tomczyk
* 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.
Nie musisz, ale tak jest wygodniej.
Post by Cezary Tomczyk
* Trzeba przeczytać i zrozumieć kod :D
* Więcej nie pamiętam, ale możesz dopisać kolejne punkty tutaj ;-)
* Tworzysz rozwiązanie in-house, z którym musisz sobie radzić sam
* Musisz w wielu miejscach wynajdować koło na nowo
* Uzyskujesz strasznie rozwlekły kod, bo patrz wyżej
Post by Cezary Tomczyk
Post by Borys Pogoreło
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.
Na blogaskach generalnie wypada chwalić w komentarzach, nawet takie
wynaturzenia jak JSS ;)
--
Borys Pogoreło
borys(#)leszno,edu,pl
Cezary Tomczyk
2017-03-24 08:53:02 UTC
Permalink
Post by Borys Pogoreło
Post by Cezary Tomczyk
Post by Borys Pogoreło
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.
A nie widzę, byś go używał.
Nie. Aktualnie nie używam. A nawet przyznam się, że używałem Gulpa
bardzo króciótko i przy jednym projekcie. Grunt-a używałem przez kilka lat.
Post by Borys Pogoreło
Do tego to by jeszcze bardzo zaciemniło Twoje
rozwiązanie, zwłaszcza jakbyś musiał zsynchronizować kilka promises.
Promise.all - to wszystko, co jest potrzebne i jest dostępne. Chyba, że
myślisz o czymś innym.
Post by Borys Pogoreło
Nie wspominając już o zabawie z łapaniem wyjątków, itd. Ze strumieniami jest
znacznie łatwiej, do ich scalania i synchronizowania masz gotowe narzędzia,
a ich użycie to 1-2 linijki.
"catch" z Promise-a powinien pomóc. Niektóre npm moduły zwracają Error
object.
Post by Borys Pogoreło
Post by Cezary Tomczyk
To żadna kombinacja. Przypatrz się temu dokładnie. Bierzesz pakiet npm i
używasz go całkiem normalnie: wejście -> wyjście.
A po drodze odpalasz binarkę CLI eslint, musisz ją skonfigurować,
samodzielnie obsłużyć błędy i do tego zupełnie nie widać, co jest wynikiem
działania tej funkcji. Coś tam sobie leci w pętli i nie bardzo wiadomo, co
A wrapper do G/G to jak działa?
Post by Borys Pogoreło
się dzieje i gdzie szukać efektów (co to jest "report" i jak go czytać? co
to jest "formatter" i czemu pojawia się dopiero na końcu, choć nazwa
wskazuje na coś potrzebnego w trakcie procesu?). A całość jest długa na dwa
Wszystko jest opisane w dokumentacji:
http://eslint.org/docs/user-guide/command-line-interface
Post by Borys Pogoreło
ekrany. To nie jest proste rozwiązanie. Idealizujesz je, bo jesteś autorem.
Absolutnie nie idealizuję. Z resztą, nie wymyśliłem niczego nowego.
Przykładowo eslint
https://github.com/eslint/eslint/blob/master/Makefile.js korzysta z tego
samego podejścia do build-a.
Post by Borys Pogoreło
Proste rozwiązanie to jest wziąć garść plików, złączyć je w jeden strumień,
wrzucić w eslint z konfiguracją i coś zrobić ze strumieniem wyjściowym. I
nie przejmować się zanadto obsługą błędów, bo robi to za nas narzędzie.
Jak masz proste kroki w buildzie, to wszystko się zgadza. Jeszcze raz
podkreślę - każdy używa to, co jest dla niego najlepsze albo musi, bo
jest już to w projekcie od jakiegoś czasu. Jeżeli ląduję w projekcie z
G/G, to nie marudzę tylko tego używam ;-)

A poza tym, zapominasz o innych argumentach. Przykład:

https://gist.github.com/elijahmanor/179e47828bf760c218bb3820d929836d
Post by Borys Pogoreło
Post by Cezary Tomczyk
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
Ja mam nieodparte wrażenie, że gulpa nawet nie spróbowałeś na dobre, bo
wcześniej stworzyłeś to swoje rozwiązanie.
Próbowałem, ale bardzo krótko i przy jednym projekcie. Z resztą,
przeszedłem na inne podejście, które według mnie, jest bardziej
elastyczne. Może odrobinę więcej czasu zajmuje napisane zadania, ale nie
jest to też aż tak skomplikowane. Sądzę, że trochę przesadzasz w drugą
stronę ;-)
Post by Borys Pogoreło
Post by Cezary Tomczyk
1. Definiujesz co chcesz osiągnąć.
2. Dobierasz sobie pakiet npm.
3. Piszesz kilka linijek kodu, by przekazać parametry do pakietu npm i tyle.
No popatrz, opisałeś gulpa ;)
:D
Post by Borys Pogoreło
Hint: nikt Ci nie broni używać pakietów npm w procesie gulpa. Prościej
jednak jest trzymać się konwencji.
Trzymanie się konwencji jest pewnym ułatwieniem w organizacji pracy, ale
jednocześnie, osobiście, nie wykluczam indywidualnego podejścia.
Wszystko zależy od sytuacji i potrzeb.
Post by Borys Pogoreło
Post by Cezary Tomczyk
* Usuwam niepotrzebną zależność od Grunt-a/Gulp-a
To nie jest argument.
W w/w linku są podane argumenty, a ja także podałem je w swoim artykule.
Post by Borys Pogoreło
Post by Cezary Tomczyk
* Nie muszę czekać, aż autor pakietu dla Grunt-a/Gulp-a uaktualni mi go
Pakiety npm też nie zawsze są aktualne.
Pewnie, ale pakiety dla G/G jeszcze bardziej ;-)
Post by Borys Pogoreło
Post by Cezary Tomczyk
* Nie muszę nic hackować, bo albo korzystam z gotowych pakietów npm
(jeśli są wystarczające), albo piszę sam.
A czym jest hackowanie, jak nie tym ostatnim? ;)
Hack to obejście. Ja niczego nie obchodzę :-) Ot, korzystam z pakietów
npm i tyle.
Post by Borys Pogoreło
Nawiasem mówiąc pakiety gulp nie są jakieś przesadnie skomplikowane.
https://github.com/babel/gulp-babel/blob/master/index.js
No i teraz pytanie po co mi wrapper skoro mogę skorzystać bezpośrednio z
pakietu npm ;-)
Post by Borys Pogoreło
Post by Cezary Tomczyk
* 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.
Nie musisz, ale tak jest wygodniej.
No więc najpierw muszę znaleźć coś, co zadziała z G/G, a jeśli nie ma,
to pozostaje mi własne rozwiązanie, które potem muszę podpiąć pod G/G.
Post by Borys Pogoreło
Post by Cezary Tomczyk
* Trzeba przeczytać i zrozumieć kod :D
* Więcej nie pamiętam, ale możesz dopisać kolejne punkty tutaj ;-)
* Tworzysz rozwiązanie in-house, z którym musisz sobie radzić sam
I tak, i nie. Po mojej "in-house" stronie jest tylko to, co ja
napisałem. Reszta to pakiety npm. Tak, czy inaczej, wsparcie community jest.
Post by Borys Pogoreło
* Musisz w wielu miejscach wynajdować koło na nowo
Nie bardzo wiem, co takiego muszę wynajdować na nowo.
Post by Borys Pogoreło
* Uzyskujesz strasznie rozwlekły kod, bo patrz wyżej
Nie powiedziałbym, że rozwklekły, ale ok. Za to mam pełną kontrolę i
swobodę nad tym, co określone zadanie ma robić. Poza tym, build piszesz
raz i działa latami. Nie trzeba do tego codziennie zaglądać, jak do
źródeł aplikacji ;-)
Post by Borys Pogoreło
Post by Cezary Tomczyk
Post by Borys Pogoreło
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.
Na blogaskach generalnie wypada chwalić w komentarzach, nawet takie
wynaturzenia jak JSS ;)
:-)

Jednym z plusów takiego rozwiązania, o którym napisałem, jest brak
zależności od konkretnego rozwiązania do builda.

Przy okazji, przypomina mi się sytuacja historycznie:

* Grunt - tego teraz używamy.
* Gulp - Grunt już je be, teraz Gulp jest super.
* Browserify - nie znasz? Teraz to jest na topie :-)
* Webpack - nie, już Browserify nie jest dobre.
* Rollup (http://rollupjs.org/) - teraz Rollup musi być najlepszy.

Ja wiem, że są rożnice w tym, co one potrafią, ale to już inna bajka.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Jivanmukta
2017-03-19 14:47:11 UTC
Permalink
Post by zpksoft
Post by Cezary Tomczyk
A poza tym, zrezygnuj z onfocus i onblur inline i skorzystaj z delegacji
https://bfkot.wordpress.com/2010/09/02/event-delegation-delegowane-nasluchy-czyli-wydarzenia-w-delegacji-czesc-1/
--
Cezary Tomczyk
https://www.aslint.org/ - walidacja Accessibility
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
Dodam jeszcze że niezbyt inteligentny jest ten kod. Po co tak motać prosty sznurek?
document.onclick = function(e){
e = e || window.event;
var t = e.target || e.srcElement;
n=t.id || t.className;
if (!n) return;
if (n=='id_diva1') {...}
else if (n=='id_elementu_span1') {...}
else ...
Zrobiłem tak:

function setFocusAndBlur() {
var i, sel;
sel = document.querySelectorAll("fieldset input");
for (i = 0; i < sel.length; i++) sel[i].onfocus = onFocusElement;
sel = document.querySelectorAll("fieldset input");
for (i = 0; i < sel.length; i++) sel[i].onblur = onBlurElement;
sel = document.querySelectorAll("fieldset select");
for (i = 0; i < sel.length; i++) sel[i].onfocus = onFocusElement;
sel = document.querySelectorAll("fieldset select");
for (i = 0; i < sel.length; i++) sel[i].onblur = onBlurElement;
sel = document.querySelectorAll("fieldset textarea");
for (i = 0; i < sel.length; i++) sel[i].onfocus = onFocusElement;
sel = document.querySelectorAll("fieldset textarea");
for (i = 0; i < sel.length; i++) sel[i].onblur = onBlurElement;
document.querySelector("#captcha").onfocus = onFocusElement;
document.querySelector("#captcha").onblur = onBlurElement;
}

i mi działa. Problem zamknięty. Dzięki za pomoc.
Jivanmukta
2017-04-01 05:16:11 UTC
Permalink
Post by Jivanmukta
Problem zamknięty. Dzięki za pomoc.
Jeszcze coś mi nie działa. Nie rozumiem dlaczego kod:

<input type="text" name="client_mobile1" value="" id="client_mobile1"
maxlength="16" size="16" style="width: 16ex" class="mobile" >

p = document.getElementById("client_mobile1");
if (!p.hasOwnProperty("className")) alert(p.tagName + "#" + p.id + " has no
className");

wyświetla mi alerta: INPUT#client_mobile1 has no className. Używam FireFoxa,
ale chciałbym żeby mi działało pod wszystkimi popularnymi przeglądarkami.
Jivanmukta
2017-03-15 13:31:54 UTC
Permalink
Post by Jivanmukta
...
Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za
podpowiedź.
Poradziłem sobie:

function divLabelOf(elem) {
if (elem) {
var p = elem;
while (p.className != 'control') {
p = p.parentNode;
}
p = p.parentNode;
return p.childNodes[1]; // div
}
return null;
}

bo przed divem był pusty tekst co też się liczy jako childNodes.

---
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Cezary Tomczyk
2017-03-15 19:50:50 UTC
Permalink
Post by Jivanmukta
Post by Jivanmukta
...
Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za
podpowiedź.
function divLabelOf(elem) {
if (elem) {
var p = elem;
while (p.className != 'control') {
p = p.parentNode;
}
p = p.parentNode;
return p.childNodes[1]; // div
}
return null;
}
bo przed divem był pusty tekst co też się liczy jako childNodes.
Zainteresuj się firstElementChild:
https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/firstElementChild
--
Cezary Tomczyk
https://www.aslint.org/ - walidacja Accessibility
Blokowanie automatycznego odtwarzania video na gazeta.pl w Google
Chrome: https://goo.gl/0kCRLS
Loading...