Podejście do nowego projektu.

Podejście do nowego projektu.
R1
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:208
0

Witam,

chciałbym zapytać w jaki sposób Wy podchodzicie do nowego projektu. Powiedzmy że dostajecie "zlecenie" na napisanie takowego programu:

Napisz program wspomagający naukę słownictwa w języku angielskim.

opcje programu:

  • dodawanie słów do bazy danych
  • wylosowanie rekordu i w zależności od wybranej opcji czy chcemy pisać polskie tłumaczenie czy ang wyświetlenie najpierw słowka i oczekiwanie na tłumaczenie.
  • sprawdzenie podanego tłumaczenia i wyświetlenie odpowiedniego komunikatu.

i teraz moje Pytanie. W jaki sposób podchodzicie do projektu na początku? Kartka papieru i wypisanie najpierw nazw klas jakie będą potrzebne? czy to wychodzi w trakcie pisania? jakie kwestie przemyślicie na samym początku projektu? (pomijam trywialność owego "projektu").

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Kartka papieru i wypisanie najpierw nazw klas jakie będą potrzebne? :D :D :D tak, a potem rysuje wszystkie diagramy... :P

Na początku to wybieram sobie mniej więcej w jakiej technologii chciałbym to zrobić, w jakim języku, czy to desktop czy web itd. Potem montuje stuba dla tego projektu a potem to się po kolei klepie co tam ma być.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
R1
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:208
0

czyli piszesz kod bez większego planu na żywca??;)

edytowany 1x, ostatnio: rafal20-1988
L1
Rozpisanie wszystkiego na kartce, i rozrysowanie diagramów to nie jest większy plan?
szweszwe
@lukasz1988 czy @Shalom napisał, że tak robi?
SC
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 8 lat
  • Postów:18
0

Trellloooo! ;) Zawsze gdy wpada mi jakiś pomysł czy ogólnie zadanie/projekt do zrobienia... staram się go rozpisać na trello. Zaczynam od opisania ogólnie tego co mam zrobić i podziału na ogólne "moduły" i tak schodzę bardziej do szczegółów.

Trelo jest dość spoko do takich rzeczy szczególnie, że jest darmowe.

WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 15 godzin
  • Postów:3169
0

Doswiadczenie z gra ktora pisze pokazuje ze warto spedzic troche czasu na zastanowieniu sie co i jak i chocby bardzo ogolnym rysunkiem jak to bedzie dzialac, co z czym bedzie rozmawiac czego uzywac etc.

Zalozenie mialem takie: pisze na zasadzie byle szybko, dozwolone kopiuj wklej, magic numbers, wszystko na public etc. Tak jak sie robi prototyp :) I jaki efekt? Na poczatku do pewnego momentu wszystko idzie ladnie szybko, a pozniej zmiana czegokolwiek, poprawa buga etc zaczynaja zajmowac duzo czasu, takze teraz bawie sie w refaktoring, wyciaganie interfejsow i programowanie do nich etc. Gdybym tak zrobil od razu - byloby szybciej. Z drugiej strony warto samemu przez cos takiego przejsc zeby zobaczyc jak szybko potrafi sie zrobic syf w projekcie.

R1
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:208
0

No właśnie miałem podobnie jak pisałem jakiś czas temu większy projekt. Też uznałem że będę pisał na bieżąco i w efekcie okazało się że to co pisałem bez większego przemyślenia albo musiałem od nowa przepisywać albo poprawka czegokolwiek była czasochłonna. Z drugiej strony tak jak to napisał @Shalom po dłuższym przemyśleniu rozpisywanie na kartce papieru nazw klas itp nie ma sensu gdy projekt jest znacząco rozbudowany...

wiosek jest taki że trzeba wyrobić sobie porządek w kodzie od pierwszych linii kodu?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1
rafal20-1988 napisał(a):

wiosek jest taki że trzeba wyrobić sobie porządek w kodzie od pierwszych linii kodu?

Bez przesady: Porządek przeszkadza cały czas (bo tracisz czas na jego utrzymanie). Bałagan przeszkadza dopiero jak się potykasz.

Punkt 0 - jest taki, że nie ma prostej odpowiedzi

Punkt 1
jak piszesz sobie sam - to nie warto przesadzać z porządkiem - jak się potykasz to sprzątaj od razu, ale może nie warto wcześniej...,
jak piszesz w zespole - to im większy zespół (5 programistów to już dużo) - tym więcej narzucaj reguł i porządku, całkiem fajnie pomaga review
(robisz coś - na czuja, porządkujesz przed review, robicie review - i dopiero potem (magicznie!) okazuje się jak powinna wyglądać struktura tego kawałka programu, zwykle zupełnie inaczej niż byś to sobie na kartce zaprojektował (przynajmniej mi tak wychodzi...)).

Punkt 2:
Ale są też indywidualne preferencje - na poziomie kodu - tak jak przedstawiłeś - lubię bałagan ( cieszę się jak mi coś zadziała, a nie wiem czemu :-) ). Znam dużo takich programistów jak ja.
Ale znam też programistów co potrafią sobie całkiem dużo zaprojektować, i nawet im to potem od razu działa. (Ale nie rozumiem jak można sobie tak psuć zabawę :-) ).

Punkt 3:
Ale oprócz takich rzeczy jak klasy, moduły (i inne pier...ły) sa też rzeczy ważne: np. przepustowość systemu, bezpieczeństwo danych, odpornośc na różnego rodzaju awarie, komunikacja z innymi systemami.. Tu niestety zwykle potrzebuje sobie coś poprzepliczać, rozrysować itp. Ale pewnie są też goście co ogarniają to z głowy i nie muszą sie wspomagać żadnym (tfu...) "planowaniem".
Ten punkt jest ogólnie smutny, ale jeśli pracujesz dla firmy, masz jakiś konktrakt, kary itp. to niestety trzeba to odbębnić. Bo czasem się okazuje, że kontrakt jest nierealizowaly przy założonej technologii :-) (Hard real time, CAP). Albo może cię zasokoczyć np. ochrona danych osobowych....(nie w twoim przykładowym systemie, ale mnie kiedyś zaskoczył problem).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)