• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Własna biblioteka w JS - prośba o ocenę kodu i dokumentacji

Object Storage Arubacloud
+3 głosów
829 wizyt
pytanie zadane 11 czerwca 2018 w JavaScript przez Gambr Dyskutant (7,530 p.)
zamknięte 17 sierpnia 2018 przez Gambr

To oczywiście nie jest skończony projekt, tylko coś, co ma jakiś kształt i nadaje się do pokazania i zebrania ocen, rodzaj minimum viable productu. Zaznaczam, że ta biblioteka nie ma być docelowo jakimś cennym biznesowo rozwiązaniem. Moimi celami było stworzenie jakiegoś pet projectu w JS, w którym na co dzień nie pracuję, oraz napisanie zwięzłej i sensownej dokumentacji. Z góry dziękuję za poświęcony czas. smiley

Github

komentarz zamknięcia: https://forum.pasja-informatyki.pl/369940/js-ocena-biblioteki-do-updatowania-dom

4 odpowiedzi

+2 głosów
odpowiedź 11 czerwca 2018 przez ShiroUmizake Nałogowiec (46,300 p.)
wybrane 12 czerwca 2018 przez Gambr
 
Najlepsza

Github udostępnia taką fajną rzecz jak gitPage. Warto tam pokazać jak działa tam ta biblioteka :).

To mi się nie podoba.

for(let i=1; i<6; i++) slides.push(Tag.img(slidePath+"slide"+i+".png") );

A co jeżeli dodaje zdjęcia dynamiczne? Slides powinen rozpoznawać czy dostaje listę czy obiekt + użależniesz mnie od konkretnego  rozszerzenia.  Proponowałbym

slides.push(sliderPaths);

funckja push (paths) {

let paths = paths;

if (!this.isArray(paths)) {
paths = Array.from(path); // Sprawdz czy obiekt jest iterowalny i zmien go na tablice.
}

this.paths.forEach(path => this.generateImage(path))

}

funkcja generateImage(path) {
 /// Zobacz sobie w MDN Image.
}

Nie wiem czy próbujesz używać natywny Event API czy swoje własne. Jeżeli to drugie, to blokujesz dostęp do niego, zmieniłbym nazwę.

new Event(nextSlideBtn,function(){

Zrobiłbym factorkę.

return "<iframe width='560' height='315' src='https://www.youtube.com/embed/"+src+"' frameborder='0' allow='autoplay; encrypted-media' allowfullscreen></iframe>"

J.w i przerzuciłbym to do eventów typu: changeMarginTop();

  static marginTop(value){
	  return "<div style='margin-top:"+value+"px;'></div>";
  }
  static marginBottom(value){
	  return "<div style='margin-bottom:"+value+"px;'></div>";
}

To już nie lepiej było zrobić plugin ala React :)

 static h1(content,cls="basicElement"){
    return this.makeTag("h1",{cls:cls,content:content});
  }
  
  static h2(content,cls="basicElement"){
    return this.makeTag("h2",{cls:cls,content:content}); 
  }
  
  static h3(content,cls="basicElement"){
    return this.makeTag("h3",{cls:cls,content:content}); 
  }
  
  static h4(content,cls="basicElement"){
    return this.makeTag("h4",{cls:cls,content:content}); 
  }
  
  static h5(content,cls="basicElement"){
    return this.makeTag("h5",{cls:cls,content:content}); 
  }
 
  static h6(content,cls="basicElement"){
    return this.makeTag("h6",{cls:cls,content:content}); 
  }
  
  static p(content,cls="basicElement"){
    return this.makeTag("p",{cls:cls,content:content}); 
  }
  
  static span(content,cls="basicElement"){
    return this.makeTag("span",{cls:cls,content:content}); 
  }
  
  static div(content,cls="basicElement"){
    return this.makeTag("div",{cls:cls,content:content}); 
  }
  
  static button(content,cls="basicElement"){
    return "<button class='"+cls+"'>"+content+"</button>"
  }
  
  static a(content,href,cls="basicLink",target="_blank"){
    return "<a href='"+href+"' target='"+target+"' class='"+cls+"'>"+content+"</a>";
  }
  
  static img(src,cls='basicImage'){
    return "<img src='"+src+"' class='"+cls+"'>";
}

staticki związane z niebezpośrednio Tag, wyniósłbym DOMFactory (konstruje), DOMRender ( a , h1 itd).

Często się powtarza. Zmieniłbym wyniósłbym do metody np: na isIBranchInstanceOf(branch);

if(! (branch instanceof Branch)) throw wrongBranchException(branch);

 

 

komentarz 12 czerwca 2018 przez Gambr Dyskutant (7,530 p.)

Dzięki, poprawię kod wg sugestii smiley

+4 głosów
odpowiedź 11 czerwca 2018 przez ProgramistaStepek Nałogowiec (27,020 p.)
Dokumentacja powinna być od razu w README.md :)
komentarz 11 czerwca 2018 przez Gambr Dyskutant (7,530 p.)
Dzięki za sugestię, wszystko co tutaj doradzą mądrzy ludzie odrazu leci do to-do listy
+2 głosów
odpowiedź 11 czerwca 2018 przez Mariusz08 Maniak (62,300 p.)
  1. Warto sensowniej nazywać commity niż "no message" ;)
  2. Jeśli ma to być jakaś większa biblioteka, to korzystałbym z PR oraz samą bibliotekę tworzyłbym z innymi ludźmi - nowe pomysły
  3. Przydałoby się gdzieś wrzucić wersję .min
komentarz 11 czerwca 2018 przez Gambr Dyskutant (7,530 p.)
Miałem problemy z source tree i ze łzami w oczach już chciałem jakoś upchać zmiany do repo i w końcu iść spać.
1
komentarz 12 czerwca 2018 przez Secrus Nałogowiec (32,880 p.)
Polecam obsługę gita z linii poleceń. Source Tree ładnie wygląda, ale bywa kapryśny
komentarz 12 czerwca 2018 przez Gambr Dyskutant (7,530 p.)
W sumie racja, source tree co chwila wyrzuca jakieś błędy a command line działa zawsze
1
komentarz 12 czerwca 2018 przez Ehlert Ekspert (212,670 p.)

@Secrus, nie polecam Source Tree, ale cli bywa kapryśne przy merge konflikcie na 30 plików. devil

+2 głosów
odpowiedź 11 czerwca 2018 przez Ehlert Ekspert (212,670 p.)

Nie za bardzo zrozumiałem problemy implementacyjne, które ta libka miałaby ułatwiać. Napisałeś kilka metod które doklejają HTMLa w stringu, przez co drzewo DOM przy każdym użyciu musi być przebudowane.

Ale yes za chęci, gh i początki es6.

komentarz 12 czerwca 2018 przez Gambr Dyskutant (7,530 p.)
Chciałem poćwiczyć angielski i napisać coś w JS w którym jestem bardzo słaby :p

Podobne pytania

+1 głos
1 odpowiedź 739 wizyt
pytanie zadane 10 lipca 2016 w PHP przez CzikaCarry Szeryf (75,340 p.)
0 głosów
0 odpowiedzi 574 wizyt
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 7 czerwca 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...