Motywacja dla jakości kodu
Motywacja dla jakości kodu
Widziałem troche kodów ABAP i odnoszę wrażenie, że pisane są niedbale. Tzn nie tworzy się własnych klas a jak się tworzy to nie generyczne ale odwołujące się do konkretnych tabel i kolumn, że raczej powiela się te same kody w wielu miejscach. Mam wrazenie, że to z powodu możliwości wykorzystania tych metod przez konkurencję (np. kolegę w pracy, który ma lepsze chody w zarządzie a nie lubi zbytnio pracować szarymi komórkami). O zaciemnianiu (obfuscation) pewnie nie ma mowy więc tworzy się kody "na odwal", byle działały i żeby ww. koledze nie chciało się tego kopiować. Czy mam rację?
-
- Posty: 1061
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 71 times
- Been thanked: 315 times
Re: Motywacja dla jakości kodu
Zgadzam się że jakość kodu bardzo często nie trzyma się standardów i jest ogólnie rzecz ujmując bardzo niska. Ale raczej nie bierze się to stąd, że ktoś celowo tak robi chroniąc się przed konkurencją, tylko stąd że duża część ludzi którzy tworzą kod albo nie są informatykami i po prostu nie mają nawyku i wiedzy, ktoś ich tak nauczył, są samoukami, mają stare przyzwyczajenia, z lenistwa itd.
Bierze się to też stąd że bardzo rzadko kierownictwo projektu wymaga wysokiej jakości kodu, coś ma po prostu działać żeby użytkownicy byli zadowoleni, a problemy rozwiązuje się jak wydajność jest słaba. Nie spotkałem się jeszcze żeby kierownik projektu robił audyty jakości rozwiązań (nie tylko kodu ale np. interfejsów czy wydruków), sprawdzał np. jakość dokumentacji, albo cedował te zadania żeby programiści nawzajem się sprawdzali/audytowali.
Ale to zapewne temat na dłuższą dyskusję
Bierze się to też stąd że bardzo rzadko kierownictwo projektu wymaga wysokiej jakości kodu, coś ma po prostu działać żeby użytkownicy byli zadowoleni, a problemy rozwiązuje się jak wydajność jest słaba. Nie spotkałem się jeszcze żeby kierownik projektu robił audyty jakości rozwiązań (nie tylko kodu ale np. interfejsów czy wydruków), sprawdzał np. jakość dokumentacji, albo cedował te zadania żeby programiści nawzajem się sprawdzali/audytowali.
Ale to zapewne temat na dłuższą dyskusję
Re: Motywacja dla jakości kodu
Z drugiej strony mnie łatwo mówić bo mnie nikt nie kontroluje pod tym względem. Freelacer jestem choć pracuje na etatcie. Nie wiem jak długo to potrwa ale sam analizuję problem, projektuję bazy danych, wykonuje i tworzę aplikacje (zwykle klienckie). Potem sam to rozwijam wedle potrzeb użytkowników. Gdybym poszedł w ABAP i ktoś zacząłby kontrolować mój kod, pewnie bym inaczej śpiewał. Na razie utknąłem w punkcie: iść czy nie iść. Siedzieć na bezpiecznej stosunkowo słabo płatnej posadzie czy spróbować targnąć się na lepsze zarobki ale z perspektywą fiaska i straty tego co mam. Dodatkowo demotywuje mnie to, że moja "siła" to własne biblioteki, które drastycznie redukują mi ilość kodu (i czasu) dając sporo przewagi nad podobnymi gośćmi nie posaiadającymi takich rozwiązań. Jednak moją wadą jest stosunkowa powolność (tzw dzielenie włosa na czworo). Ta cecha pozwala mi opracowywać własne biblioteki ale na pierwszym froncie sprawia żem powolny. Gdyby udało mi się w ABAP część bibliotek odtworzyć (jako metody klas) a moje rozwiązania zechciano by stosować (w takiej czy zmienionej formie), uplasowałbym się w ogonie i odpadł. Tego się obawiam. A ukryć kodu klas ani praktycznie nie ma jak ani podobno nikt z klientów na to nie pójdzie.
-
- Posty: 1061
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 71 times
- Been thanked: 315 times
Re: Motywacja dla jakości kodu
Oczywiście że żaden z klientów na to nie pójdzie bo płacąc Tobie oni dają sobie prawo do Twoich kodów, jak Ciebie w firmie nie będzie to jak będą mieli poprawić/rozwijać jeśli będzie ukryty?
A kod ABAP można ukryć nawet dość skutecznie, jest to używane w AddOnach, które rozwijają zewnętrzne firmy i sprzedają jako dodatek - ale też nie zawsze.
A Twoje rozterki raczej nie będą miały wiele wspólnego z jakością tworzenia kodu - zwykle takie dzielenie włosa na czworo jest lepsze niż lepienie na ślinę i potem poprawianie sto razy tego samego bo ma tyle błędów. Myślę że też jest ważne, żeby jednak być w stanie prototyp rozwiązania napisać szybko, nawet łamiąc jakieś zasady, na zasadzie żeby szybko coś pokazać. Ważne żeby to potem nie zostało już na stałe niedorobione
A kod ABAP można ukryć nawet dość skutecznie, jest to używane w AddOnach, które rozwijają zewnętrzne firmy i sprzedają jako dodatek - ale też nie zawsze.
A Twoje rozterki raczej nie będą miały wiele wspólnego z jakością tworzenia kodu - zwykle takie dzielenie włosa na czworo jest lepsze niż lepienie na ślinę i potem poprawianie sto razy tego samego bo ma tyle błędów. Myślę że też jest ważne, żeby jednak być w stanie prototyp rozwiązania napisać szybko, nawet łamiąc jakieś zasady, na zasadzie żeby szybko coś pokazać. Ważne żeby to potem nie zostało już na stałe niedorobione
Re: Motywacja dla jakości kodu
Podnosisz mnie na duchu Ja, nałogowy dłubacz w kodach od tygodnia nie tknąlem ABAP'a ani innej maszyny ale zaraz chyba się wezmę na powrót.
Pozdrawiam.
Pozdrawiam.
-
- Posty: 8350
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1922 times
- Been thanked: 1476 times
- Kontakt:
Re: Motywacja dla jakości kodu
Wojtek, jakie znasz skuteczne metody ukrywania kodu ABAP?wojtas7 pisze:A kod ABAP można ukryć nawet dość skutecznie, jest to używane w AddOnach, które rozwijają zewnętrzne firmy i sprzedają jako dodatek - ale też nie zawsze.
Re: Motywacja dla jakości kodu
Ja też bym poprosił jeśli nie masz nic przeciwko?wojtas7 pisze:jestem przeciwny ukrywaniu kodu więc wysyłam Ci na priv
Re: Motywacja dla jakości kodu
Mam to Gdzieś z sieci ściągnąłem (u mnie wykazuje błąd w poniższej linii)
INSERT gv_code INTO TABLE gt_code INDEX 1.
Gdy usunę słowo TABLE - działa.
Niestety to chroni tylko raporty a mnie zależy na ukryciu klasy.
Feler jest taki, że wstawiany w 1szej linii kod to komentarz a z klasy w momencie aktywacji usuwane są zewnętrzne komentarze
Raport zostawiłbym bez zabezpieczenia żeby ktoś mógł w razie czego go zmienić.
Dzięki w każdyma razie za dobrą wolę.
INSERT gv_code INTO TABLE gt_code INDEX 1.
Gdy usunę słowo TABLE - działa.
Niestety to chroni tylko raporty a mnie zależy na ukryciu klasy.
Feler jest taki, że wstawiany w 1szej linii kod to komentarz a z klasy w momencie aktywacji usuwane są zewnętrzne komentarze
Raport zostawiłbym bez zabezpieczenia żeby ktoś mógł w razie czego go zmienić.
Dzięki w każdyma razie za dobrą wolę.
-
- Posty: 1061
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 71 times
- Been thanked: 315 times
Re: Motywacja dla jakości kodu
Po co chcesz ukrywać kod?
Każda metoda klasy jest zapisana jako include więc można spróbować zaszyfrować tą metodą.
Jak pogmerasz w necie są też inne metody działające bezpośrednio na bazie danych.
Każda metoda klasy jest zapisana jako include więc można spróbować zaszyfrować tą metodą.
Jak pogmerasz w necie są też inne metody działające bezpośrednio na bazie danych.
Re: Motywacja dla jakości kodu
Jak wspomniałem w poście otwierającym wątek plus mam specyfikę taka, że lubię rozbijać na atomowe moduły. To ostatnie zajmuje mi sporo czasu (uniwesalizacja, optymalizacja) więc najczęściej przygotowuje takie rzeczy w domu (w czasie prywatnym). Klepanie sekwencyje nie odpowiada mi. Nadmienię, że doświadczenie jakie mam to w językach rzeczywiście obiektowych i na zasadzie takiej, że tworze oprogramowanie od zera a potem je utrzymuję. Przerabianie cudzych kodów jest mi obce i mówiąc szczerze raczej nie chciał bym w to wchodzić.wojtas7 pisze:Po co chcesz ukrywać kod?
Z ww. powodow coraz bardziej skłaniam się ku myśli, aby zatrudnić się w jakimś projekcie "od zera".
Kod, który wkleiłeś odnosi się do "report". Czy "include" też jakoś można odczytać? Nazwy metod moga sie powtarzać w róznych klasach więc trzebaby jakoś je odróżnić?Każda metoda klasy jest zapisana jako include więc można spróbować zaszyfrować tą metodą.
Jest coś tutaj ale to nie działa na nowszych systemach (nie istnieja już te tabele, do których się odwołuje kod).Jak pogmerasz w necie są też inne metody działające bezpośrednio na bazie danych.
-
- Posty: 1061
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 71 times
- Been thanked: 315 times
Re: Motywacja dla jakości kodu
na razie chyba za bardzo teoretyzujesz. jako kierownik projektu jakby mi programista powiedział że on jakiegoś problemu nie rozwiąże bo on nie grzebie w czyimś kodzie, no to wybacz ale nie do zaakceptowania.
a szyfrowanie Twojego kodu z jakiegoś powodu jest nie do zaakceptowania. Temat przerabiany - po prostu nie rób tak bo zła karma do Ciebie wróci
a szyfrowanie Twojego kodu z jakiegoś powodu jest nie do zaakceptowania. Temat przerabiany - po prostu nie rób tak bo zła karma do Ciebie wróci
Re: Motywacja dla jakości kodu
Ja wiem, że jak bym w to wszedł to będe musiał :/wojtas7 pisze:na razie chyba za bardzo teoretyzujesz. jako kierownik projektu jakby mi programista powiedział że on jakiegoś problemu nie rozwiąże bo on nie grzebie w czyimś kodzie, no to wybacz ale nie do zaakceptowania.
Jeszcze się łudzę, że będę raczej projektował i ew. programował te pierwsze wersje, po których to inni będą na mnie kląć
Jestem w trakcie trawienia tego faktu. Trawię już ok 1,5 tygodnia i już mi troche lepieja szyfrowanie Twojego kodu z jakiegoś powodu jest nie do zaakceptowania. Temat przerabiany - po prostu nie rób tak bo zła karma do Ciebie wróci
-
- Posty: 8350
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1922 times
- Been thanked: 1476 times
- Kontakt:
Re: Motywacja dla jakości kodu
Pełna zgoda co do karmy i generalnie szyfrowania kodu.wojtas7 pisze:a szyfrowanie Twojego kodu z jakiegoś powodu jest nie do zaakceptowania. Temat przerabiany - po prostu nie rób tak bo zła karma do Ciebie wróci
Jeden przypadek kiedy widzę sens szyfrowania kodu, to kiedy piszesz addon, który chcesz sprzedawać jako komercyjny produkt. Addon, w który włożyłeś swój własny, autorski pomysł. Przerabiałem ten temat ostatnio i okazało się, że poza prawem autorskim nie bardzo masz jak chronić wartość intelektualną takiego produktu - nie można swoje autorskiego pomysłu opatentować.
Tak przy okazji temat rozpoczął się od pytania o motywację dla jakości kodu, a zeszło na kwestię jak zaszyfrować kod. Ciekawa ewolucja wątku.
Moim zdaniem taka motywacja jest przede wszystkim wewnętrzna, bo z pracy wysokiej jakości, ma się wysokiej jakości satysfakcję.
Natomiast faktem jest, że bardzo często kod ABAP jest pisany niedbale. Moim zdaniem wynika to z kilku kwestii:
- Już można mieć uwagi do jakości standardowego kodu - to chyba wynika z historii, czasu w jakim powstawał system, z ilości ludzi, który go pisali, pewnie także z włączania do systemu kodu pisanego przez inne firmy
- W projektach kod jest pisany na zasadzie załatania braków funkcjonalnych (rozszerzenia) i dlatego jest tworzony od przypadku do przypadku. Brak tutaj całościowego, systemowego podejścia do developmentów na projektach, choć w systemie są narzędzia do tego
- Dalej już po starcie system jest często utrzymywany przez zewnętrzne firmy supportowe, które też lubią się zmieniać, a modyfikacje są robione bez żadnych standardów kodowania, przez różnych konsultantów.