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

Code review strony

Cloud VPS
0 głosów
1,232 wizyt
pytanie zadane 5 marca 2018 w HTML i CSS przez Tomtom1312 Nowicjusz (240 p.)
edycja 6 marca 2018 przez Tomtom1312
Witam,
proszę o ocenę mojego pierwszego projektu "weekly webdev challenge". Strona została zrobiona na podstawie projektu psd.
kod: https://github.com/tomtom12345678/webdev_3

strona: https://tomtom12345678.github.io/webdev_3/#

Chciałbym was też zapytać, czy zacząć się już uczyć javascript, czy może jeszcze podszkolić html i css?

Z góry dziękuję za wszystkie odpowiedzi.
komentarz 6 marca 2018 przez Milesq Nałogowiec (32,020 p.)
Może trochę nie w temacie ale skąd miałeś psd?
komentarz 6 marca 2018 przez gremlin Dyskutant (7,600 p.)
@Milesq psd pochodzi z facebookowej grupy "weekly webdev challenge"

5 odpowiedzi

+2 głosów
odpowiedź 6 marca 2018 przez zgrybus Pasjonat (24,860 p.)
Po co za każdym kliknięciem pobierasz od nowa element page_header? :)
komentarz 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
A jak byś to zrobił inaczej?
1
komentarz 6 marca 2018 przez zgrybus Pasjonat (24,860 p.)
Po prostu pobrał raz ten element i zapis w jakiejś zmiennej const
komentarz 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
No, ale gdzie? W zakresie globalnym? Poza tym w takim wypadku element będzie pobierany nawet gdy event nie zostanie odpalony.
komentarz 6 marca 2018 przez k.wichura Pasjonat (19,870 p.)
To stwórz zakres lokalny(IIFE) i po problemie ;)
komentarz 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
Ja bym tak nie zrobił. Spada czytelność kodu i element jest łapany nawet gdy nie jest odpalany event. Poza tym musiałbyś dla każdego łapanego elementu tworzyć nowe IIFE.
komentarz 6 marca 2018 przez zgrybus Pasjonat (24,860 p.)
Pobierasz raz element, naprawdę twoja optymalizacja nie ucierpi na tym. Skoro tak bardzo chcesz pobrać element tylko podczas kliknięcia, to zadeklaruj zmienną i dopiero po kliknięciu dodaj jej element ( przy okazji sprawdzając czy już ta zmienna jest różna od null ).
komentarz 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
To zależy. Jeżeli elementów będzie więcej np. byłoby ich kilkaset to w przypadku Twojego rozwiązania musiałbyś od razu łapać kilkaset elementów - co jest stratą czasu, pamięci i czytelności.

Ja bym deklarował zmienną dopiero po kliknięciu. Kod jest czytelniejszy bo zmienne są powiązane z jedną konkretną funkcją i patrząc na kod funkcji od razu widzimy co jest do czego itd. W Twoim przypadku musiałbym szukać gdzieś poza zakresem funkcji.
komentarz 6 marca 2018 przez zgrybus Pasjonat (24,860 p.)
czemu kod jest czytelniejszy?

Skoro już tak zachodzisz w skrajność.. Co jeśli potrzebujesz użyć tego elementu kilkaset razy? Za każdym razem będziesz pobierał? ;)
komentarz 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
Kod jest czytelniejszy z powodu, który opisałem powyżej. Nie popadam w skrajność. To tylko przejaskrawiony przykład - pokazuje, że im więcej elementów tym gorzej działa Twoje rozwiązanie.

Nie jestem w stanie wyobrazić sobie sytuacji w której event dla danego elementu miałby być odpalany kilkaset razy.
+1 głos
odpowiedź 6 marca 2018 przez Eimens Maniak (69,240 p.)

Cześć, jestem ciekawa, dlaczego ustawiłeś font-family dla body. Kolejna sprawa jak wstawiasz znaki specjalne to nie &amp tylko &. I zastanów się nad znacznikiem time. Napisałaś w nim "8 mins ago" i niby jak to oznacza czas? Z kodu dalej nie wynika, która to godzina dodania. Jak na projekt to nie najgorzej. Nie robisz podstawowych błędów więc jest dość dobrze, nagłówki są okey. Możesz zapoznać się bardziej w media queries.  

__ 

projekt okey, natomiast gdybyś chciał to wrzucić na serwer to sporo części head brakuje :) 

komentarz 6 marca 2018 przez gremlin Dyskutant (7,600 p.)
A co jest złego w ustawianiu font-family dla body?
komentarz 6 marca 2018 przez Eimens Maniak (69,240 p.)
To że body nie jest tekstem więc po co mu ustawiać font?

Lepiej w pliku global.less czy podobnym ustawić:

a,p,h1,h2,h3,h4,h5,h6 {

font...

}

To jest moim zdaniem lepsze ustawienie, wtedy font jest ustawiany tylko dla tych elementów.
komentarz 7 marca 2018 przez gremlin Dyskutant (7,600 p.)
A do span,label,td,li,figcaption i wielu innych elementów również osobno przypisywać font? Moim zdaniem bez sensu. To chyba lepiej do body przypisać główny font a do elementów które mają mieć inny font przypisywać inny.

Nie rozumiem tego, że body nie jest tekstem. Taki <span> też nie musi być tekstem, <a> może zawierać jedynie obrazek. A taki <footer> może zawierać sam tekst, ale nie musi i jak go wtedy traktować?

Wydaje mi się, że style css a semantyka htmla nie idą w parze.
komentarz 7 marca 2018 przez Tomtom1312 Nowicjusz (240 p.)

@PATYL,   lepiej dać "8 mins ago" w paragraf? 

1
komentarz 7 marca 2018 przez Eimens Maniak (69,240 p.)
Jeżeli twój tekst w znaczniku time nie precyzuje godziny. to proponowałbym dodanie datetime do znacznika.

<time datetime="2018-03-06 14:02">8 mins ago</time>
komentarz 7 marca 2018 przez Tomtom1312 Nowicjusz (240 p.)
Dziękuję, poczytam jeszcze o tym tagu, bo przyznam, że dodałem go tak, żeby był. A jeśli chodzi o media quries to o jakie aspekty dokładnie chodzi? Bo trochę jest to dla mnie problematyczne, a dokladnie breakpointy, różne są opinie na ten tamat...np na tej stronie użyłem metody "mobile first" i według mnie wystarczyły dwa breakpointy, żeby wyświetlało się poprawnie na wszystkich urządzeniach.
komentarz 7 marca 2018 przez Eimens Maniak (69,240 p.)
Osobiście korzystam z media queries ze strony Bootstrapa wraz  z całym Bootstrapem. I strony zawsze elegancko się prezentują.
+1 głos
odpowiedź 6 marca 2018 przez ShiroUmizake Nałogowiec (46,300 p.)

<script defer src="js/fontawesome-all.js"></script>

Nie blokuj renderowania.

Można wydajniej np : po przez CDN.

<link href="https://fonts.googleapis.com/css?family=Lato:100,100i,300,300i,400,700,700i,900"

Czy faktycznie używasz tych wszstkich font-weight?

<header class="page_header">
              <div class="container navigation_wrapper">

Brak jasnej struktury CSS.

container navigation_wrapper

Czym się różni navigation od wraper?

<div class="nav_wrapper">
                        <div class="logo">
                            <img src="img/logo.png" alt="page logo">
                            <span class="logo_text">Treehouse</span>
                        </div>
                        <button type="button" class="hamburger">
                            <span class="fas fa-bars open_icon"></span>
                            <span class="fas fa-times close_icon"></span>
                        </button>
                    </div>

Lepiej tu pasuje aside.

<img src="img/logo.png" alt="page logo">

Brak atrybutów width/height

class="nav_wrapper

Czym się różni navigation_wrapper od nav_wraper?

<h1 class="title">Creative Digital<br>Solutions<br>

Br to nie najlepszy pomysł.

 <section class="top_section">
        <div class="section_wrapper">
            <h1 class="title">Creative Digital<br>Solutions<br>
            <span class="sub_title">Proin iaculis purus consequat sem cure.</span>
            </h1>
            <a href="#porfolio_section" class="button">View Portfolio</a>
        </div>
    </section>

Raz robisz na 4 raz robisz na 2.

 <p>
                                Proin iaculis purus consequat sem cure digni ssim. Donec porttitora entum suscipit aenean rhoncus posuere odio in tincidunt.
                            </p>

 

Czy ten blok niesie sens paragrafu?

 

      <h2 class="title_section">latest project<br>
                    <span class="sub_title">Proin iaculis purus consequat sem cure</span>
                </h2>

Nie lepszy hgroup?

http://html5doctor.com/the-hgroup-element/

nav.addEventListener('click', function(){
    document.querySelector('.page_header').classList.toggle('nav_opened');
})

Lpeiej użyć arrow_function jest ładniejsze.

.container {
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
}

Można bez width. container jest elementem blokowym.

p,h1,h2,h3 {
    margin: 0;
    padding: 0;
}

łatwiej użyć * bądż normalize albo reset. Zależy co prefeujesz.

font-size: 20px;

Unikaj stałych wartośći . Przez to czcionka może być za mała dla large-desktop.

padding: 10px 10px

można krócej. padding: 10px;

.nav .navigation_list{
    text-align: center;
    width: 100%;
    display: none;

Martwa reguła display: none

Sporo kodu się powtarza CSS, lepiej wyznaczyć jedne konkretne reguły dla containerów.

komentarz 6 marca 2018 przez ProgramistaStepek Nałogowiec (27,020 p.)

Lpeiej użyć arrow_function jest ładniejsze.

 Niezły argument, mnie przekonałeś wink

komentarz 6 marca 2018 przez ShiroUmizake Nałogowiec (46,300 p.)
Przekonasz się przy filtrowaniu zagniedżonych jsonów ;). Bez wspomagających bibliotek ;).
komentarz 10 marca 2018 przez Tomtom1312 Nowicjusz (240 p.)

@ShiroUmizake, poprawiłem większość rzeczy na stronie przez Ciebie zaznaczonych I dziękuję bardzo za tak dokładny code review. Jednakże mam parę pytań. Czy przypadkiem hgroup nie jest usunięte ze specyfikacji i nie powinno się go używac? Co masz na myśli, pisząc "Raz robisz na 4 raz robisz na 2." ?  A co do tego "display:none" użyłem, aby nawigacja pojawiała się tylko po przez  naciśnięcie burgera. Dlaczego jest to według Ciebie martwa reguła?  I rozumiem, że lepiej  A co do tego bloku, to dlaczego on nie niesie sensu paragrafu? Pozdrawiam ;) 

komentarz 11 marca 2018 przez ShiroUmizake Nałogowiec (46,300 p.)
Tak nie powinno się go uzywać. Mój błąd.

Wcięcia w kodzie ;).

Nic nie robiła. Klasy sterujące powinny być określone przez modyfikatory albo osobna klasa CSS.

Który blok bo nie pamiętam.
0 głosów
odpowiedź 6 marca 2018 przez Tomtom1312 Nowicjusz (240 p.)
Ponawiam pytanie, może ktoś zauważy ;)
2
komentarz 6 marca 2018 przez Daniel90 Pasjonat (17,970 p.)
Wg mnie wygląda dobrze, ucz się JSa. Mógłbyś np w fontach używać jednostek rem zamiast px, wtedy zmienisz tylko w jednym miejscu wielkość czcionki a reszta dostosuje się automatycznie.
komentarz 6 marca 2018 przez dudijr Początkujący (280 p.)

@Tomtom1312, ja mam trochę pytanie z innej beczki :) Jesteś samoukiem czy robiłeś kursy studia etc.?

 

komentarz 6 marca 2018 przez Tomtom1312 Nowicjusz (240 p.)

@dudijr  wszystkiego uczę się sam, aktualnie właśnie powtarzam html, css i niedługo chce się uczyć js.

0 głosów
odpowiedź 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
Jeżeli zmniejszysz szerokość okna i odpalisz menu hamburgerowe a potem zwiększysz szerokość okna to potem jest problem aby zamknąć hamburgerowe menu bo znika krzyżyk.
komentarz 6 marca 2018 przez Tomtom1312 Nowicjusz (240 p.)
Dzięki za zwrócenie na to uwagi, nie zauważyłem tego ;)
komentarz 6 marca 2018 przez Artek Stary wyjadacz (11,800 p.)
Jak robiłem swoje projekty to się nadziałem na coś takiego i teraz zwracam uwagę ;)

Podobne pytania

0 głosów
2 odpowiedzi 431 wizyt
pytanie zadane 10 stycznia 2019 w HTML i CSS przez smokolisz Mądrala (6,340 p.)
0 głosów
4 odpowiedzi 958 wizyt
0 głosów
2 odpowiedzi 763 wizyt
pytanie zadane 19 sierpnia 2021 w Nasze projekty przez Layoutowiec Mądrala (5,470 p.)

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,904 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

Kursy INF.02 i INF.03
...