Wzorce poprawnego programowania

Odpowiedz Nowy wątek
2019-01-04 11:56
0

Mam pytanie do was czy korzystacie z tych wzorców programowania:

OBJECT LITERAL PATTERN
REVEALING MODULE PATTERN

Lub może macie inne z których korzystacie w pracy pisząc kod javascript.

Pozostało 580 znaków

2019-01-04 11:58
0

Stary, mamy 2k19, byłeś w śpiączce przez ostatnie 3 lata? :D

Teraz się używa czegoś takiego: http://2ality.com/2014/09/es6-modules-final.html

edytowany 1x, ostatnio: Desu, 2019-01-04 12:00

Pozostało 580 znaków

2019-01-04 12:02
0
Desu napisał(a):

Stary mamy 2k19, byłeś w śpiączce przez ostatnie 3 lata? :D

nie rozumiem Cie. Podczas pisania kodu musimy przyjąć jakiś standard aby kod nie był kodem ala spegetti.
Dlatego pytam pisząc kod javascript z jakich wzorów korzystacie. Jeżeli uważasz, że nie robi się już tak to mnie proszę oświeć ;)

Pozostało 580 znaków

2019-01-04 12:04
0

Te wzorce, o których napisałeś, to były hacki, ponieważ JS nie miał jako takiego systemu modułów. Teraz mamy import/export, więc nie trzeba już ich używać :)

import/export już działa? - krsp 2019-01-04 12:22

Pozostało 580 znaków

2019-01-04 12:06
0
Desu napisał(a):

Te wzorce, o których napisałeś, to były hacki, ponieważ JS nie miał jako takiego systemu modułów. Teraz mamy import/export, więc nie trzeba już ich używać :)

a to tak samo jest niepoprawne ? :


var people = {
    people: ['Will', 'Steve'],
    init: function() {
        this.cacheDom();
        this.bindEvents();
        this.render();
    },
    cacheDom: function() {
        this.$el = $('#peopleModule');
        this.$button = this.$el.find('button');
        this.$input = this.$el.find('input');
        this.$ul = this.$el.find('ul');
        this.template = this.$el.find('#people-template').html();
    },
    bindEvents: function() {
        this.$button.on('click', this.addPerson.bind(this));
        this.$ul.delegate('i.del', 'click', this.deletePerson.bind(this));
    },
    render: function() {
       var data = {
           people: this.people,
       };
       this.$ul.html(Mustache.render(this.template, data));
    },
    addPerson: function() {
        this.people.push(this.$input.val());
        this.render();
        this.$input.val('');
    },
    deletePerson: function(event) {
        var $remove = $(event.target).closest('li');
        var i = this.$ul.find('li').index($remove);

        this.people.splice(i, 1);
        this.render();
    }

};

people.init();
edytowany 1x, ostatnio: luk89, 2019-01-04 12:07

Pozostało 580 znaków

2019-01-04 12:19
0

Kod wygląda spoko, ale w ten sposób pisało się jakieś 5 lat temu. Teraz mamy klasy, let/const, import/export. Poza tym nikt normalny nie robi już synchronizacji danych z widokiem ręcznie. Są od tego frameworki typu Vue, React, czy Angular.

edytowany 1x, ostatnio: Desu, 2019-01-04 12:21
nikt nie powiedział, że teraz jest lepiej. tęsknię nostalgicznie za czasami gdy nie było żadnych Vue, Anglurarów, Ajaxów, ... strony się pisało normalnie w HTML z CSSE'em. PHP też był oczywiście, ale jakiś normalny .... nie jak teraz zasrany fremeworkami i nie wiadomo czym jeszcze. Proste, przejrzyste, może z OOP mniej ładne. Żadnych SCSS nie było i ch... fremeworków JS ... i jakoś wszyscy żyli ... to po co było to zmieniać. Teraz strona to kolosy nie wiadomo czego i nie wiadomo po co ... tysiące wtyczek, js... - youmound 2019-01-04 12:27

Pozostało 580 znaków

2019-01-04 12:20
0
Desu napisał(a):

Kod wygląda spoko, ale w ten sposób pisało się jakieś 5 lat temu.

ja wiem,że mamy w ES6 moduły, importy i exporty lecz jaki sens ma robienie 5 plików i importowanie tego oraz exportowanie dla kilku funkcji. Chyba, że się mylę i tka trzeba to robić.

Pozostało 580 znaków

2019-01-04 12:32
0

Jak masz aplikację na 2 linijki, to żaden, ale jak zaczniesz pisać coś większego to szybko to docenisz. Mniejsze moduły są łatwiejsze w utrzymaniu. Import/export z natury nie zanieczyszcza globalnego zasięgu, więc nie trzeba tworzyć jakiś sztucznych konstrukcji.

Pozostało 580 znaków

2019-01-04 12:36
0
Desu napisał(a):

Jak masz aplikację na 2 linijki, to żaden, ale jak zaczniesz pisać coś większego to szybko to docenisz. Mniejsze moduły są łatwiejsze w utrzymaniu. Import/export z natury nie zanieczyszcza globalnego zasięgu, więc nie trzeba tworzyć jakiś sztucznych konstrukcji.

Jasne z tym się zgodzę, ale jeżeli mam do zrobienia np 4 funkcje, które wykonują akcje np usuwania czegoś po kliknięciu, dodawania elementu po wpisaniu w input, usuwania czegoś po jakiś np warunku i nie jest to aplikacja tylko zwykła strona www to jaki sens ma robienie modułów ? Przy apliakcjach to jasna sprawa ale przy stronach gdzie mmamy jakies akcje na kliku czy wywołanie funkcji do gotowych bibliotek? poza tym kto pisze aplikacje w javascripcie czystym dzisiaj. Raczej aplikacje pisze się w frameworkach jak vue, angular itd, a one same wymuszają poprawne kodowanie.

edytowany 1x, ostatnio: luk89, 2019-01-04 12:38

Pozostało 580 znaków

2019-01-04 15:09
0

Angular, Vue, czy React nic nie wymuszają. Można w nich zrobić takim sam, albo nawet większy burdel niż pisząc bez ich wykorzystania.

Jak masz faktycznie 4 funkcje, to nie ma sensu, ale mało kiedy się to na 4 funkcjach kończy. Jeżeli nie zaczniesz od początku sensownie kodować (podział na moduły, użycie jakiegoś babela, import/export), to później w miarę jak projekt się będzie rozrastał też Ci się nie będzie chciało nic zmieniać, bo "tylko jedną linijkę dopiszę". Później z tych 4 funkcji robi się gigantyczny moduł na 500 linii i jesteś w dupie.

edytowany 1x, ostatnio: Desu, 2019-01-04 15:09

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0