Zarządzanie projektami programistycznymi

Zarządzanie projektami programistycznymi
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Witam.
Nie wiem, czy to dobry dział. Raczej nie tyczy się to jednego języka, więc chyba dobrze wrzucam.

Potrzebuje nakierowania jak trzymać/organizować projekty. Wiem, że jest coś takiego jak Github, Bitbucket... itp, ale mi kontrola wersji nie jest potrzebna, ponieważ sam jeden programuje w firmie i nie zapowiada się na dodatkowego "kodownika". Z drugiej strony, albo ja coś źle robię, albo to faktycznie jest dla mnie tak uciążliwe.
Na tę chwilę trzymam wszystko tylko na dysku komputera. Mam pewne obawy, że coś przypadkiem usunę, komputer padnie, czy sam dysk twardy. Wcześniej trzymałem to na chmurze (OneDrive), ale to też nie jest jakoś super pomocne, ponieważ jeśli przypadkiem usunę to też się usunie tam. O ransomware się nie martwię, nie dostaje spamu do pracy, a też czujny jestem na podejrzane maile, czy pliki. Zresztą Windows Defender w zupełności daje sobie rade w tych czasach i nie trzeba innego syfu, ale to nie znaczy, że moja czujność nie może być uśpiona.

Czy są inne rozwiązania niż Github, czy ogólnie mówiąc kontrola wersji? Jeśli tak to jakie?
Czy moje "wymagania" zmuszają mnie do korzystania tylko z kontroli wersji? Jeśli tak to jak tego poprawnie używać? Można robić "push" przy każdym zapisie pliku w projekcie?
Czy jeśli jestem jedynym programistą w firmie to powinienem mimo to używać kontroli wersji?
Czy ma znaczenie jaki typ projektu? W większości przypadków to WinForms, ale są też projekty Flutter oraz Angular + ASP .NET Core.

PS.
Głównymi edytorami są Visual Studio oraz Visual Studio Code. Android Studio używam tylko do odpalenia wirtualki/symulatora.

AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:17 dni
2
AdamWox napisał(a):

Czy są inne rozwiązania niż Github, czy ogólnie mówiąc kontrola wersji? Jeśli tak to jakie?

Jakieś backupy, rsynci, zipowanie i wrzucanie na FTP.

Czy moje "wymagania" zmuszają mnie do korzystania tylko z kontroli wersji? Jeśli tak to jak tego poprawnie używać? Można robić "push" przy każdym zapisie pliku w projekcie?

Nie zmuszają, ale lepiej używać. Rób normalne commity.

Czy jeśli jestem jedynym programistą w firmie to powinienem mimo to używać kontroli wersji?

Tak.

Czy ma znaczenie jaki typ projektu? W większości przypadków to WinForms, ale są też projekty Flutter oraz Angular + ASP .NET Core.

Raczej nie.

KR
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:174
0

Jeśli nie GitHub itp, to może jakiś prosty skrypt, który codziennie robi kopie folderów "source" do sieciowego zasobu, codziennie tworząc nowy folder z datą w nazwie.
Wtedy zawsze będziesz miał kopie z poprzednich dni.

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
0
AdamWox napisał(a):

Czy są inne rozwiązania niż Github, czy ogólnie mówiąc kontrola wersji? Jeśli tak to jakie?

Możesz protestować microsoftowego DevOpsa (https://azure.microsoft.com/pl-pl/services/devops/) - można tam zarządzać zadaniami, zgłoszeniami repozytoriami itp. Do 5 użytkowników jest za darmo. Podobnie jest z Bitbucketem (https://bitbucket.org/product/pricing). ja odradzam wszystkie wynalazki typu katalogi z wersjami i tp. Wcześniej czy później się to odbije czkawką.

Czy moje "wymagania" zmuszają mnie do korzystania tylko z kontroli wersji? Jeśli tak to jak tego poprawnie używać? Można robić "push" przy każdym zapisie pliku w projekcie?

Sam musisz sobie wypracować jak z tym pracować. Nie wiem, jak pracujesz, czy robisz np duże zmiany a w międzyczasie poprawki. Wówczas nalezało by robić branche itp. Sam musisz wypracować swój system pracy z kodem.

Czy jeśli jestem jedynym programistą w firmie to powinienem mimo to używać kontroli wersji?

Oczywiście, że tak. Jak robisz duże zmiany to co z poprawkami do aktualnej wersji? Jeśli przyjdzie ktoś, choćby na staż, to jego wdrożenie w projekt będzie prostsze.

Czy ma znaczenie jaki typ projektu? W większości przypadków to WinForms, ale są też projekty Flutter oraz Angular + ASP .NET Core.

Najgorzej w narzędziach do kontroli wersji jest z plikami binarnymi. One tylko stanowią problem. Jak takich nie masz to reszta nie ma znaczenia co to za technologia rozwiązanie itp.

Ferdynand Lipski
  • Rejestracja:około 5 lat
  • Ostatnio:13 dni
  • Postów:77
0
AdamWox napisał(a):

mi kontrola wersji nie jest potrzebna, ponieważ sam jeden programuje w firmie i nie zapowiada się na dodatkowego "kodownika". Z drugiej strony, albo ja coś źle robię, albo to faktycznie jest dla mnie tak uciążliwe.

Bez względu na liczbę osób programujących i tak Ci się to przyda. Chociażby ze względu na to, że oprogramowanie będziesz mógł cofnąć do wskazanego stanu (zatwierdzenia), zamiast doszukiwać się w plikach z kodem rozwiązań, które nie podziałały i ręcznie je usuwać.

Dlatego też najlepiej byłoby to zrobić. Zacznij od lokalnego repozytorium i rozmyślaj nad skorzystaniem lub postawieniem usługi self-hosted (na przykład GitLab czy Gitea), dzięki czemu mógłbyś przechowywać kod aplikacji i jej zasoby także w zdalnych repozytoriach systemu kontroli wersji źródła oprogramowania.

edytowany 2x, ostatnio: Ferdynand Lipski
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:6 dni
  • Postów:3561
0

Zarządzanie źródłami to tylko jeden z aspektów. Nawiasem mówiąc nie stanąłeś nigdy przed problemem, ze samemu się wprowadzi jakiś błąd, i tzreba szukać w przeszłości?

Inne aspekty, nawet w małej firmie to bugtracking / ewidencja pożądanych ficzerów itd... etapy na jakim są. Na typową wirtualkę z PHP to można zaproponować mantisbt. Oczywiście w małej firmie używa się w inny sposób niż w korporacji.


Bo C to najlepszy język, każdy uczeń ci to powie
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Lepiej będzie jak skorzystam z "publicznego" serwisu kontroli wersji, czy jeśli mam serwer do dyspozycji to lepiej postawić "swoje"? Nie chce nikomu udostępniać mojego kodu, ponieważ nie piszę aplikacji open source.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2

Mam dużo projektów własnych, część nawet na krótko pisana. Nie wiem jak mógłbym bez kontroli wersji żyć. Bezpieczeństwo, historia, wygoda, a nawet narzędzia do zarządzania (issues itp.).
Github i prywatne projekty to najprostsze.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Są jakieś "skrypty" jakie pliki ma pomijać podczas commita, czy muszę czyścić foldery z plikami .exe itp?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2

.gitignore proste i skuteczne (wbudowane w git)


jeden i pół terabajta powinno wystarczyć każdemu
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Ok, to jeszcze jedno pytanie. Czy jest możliwość katalogowania projektów? Aplikację jakie pisze są głównie pod naszych klientów. Chciałbym w tym też mieć porządek np.:
Firma1
App1
App2
Firma2
App3
App4

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1

Na github są organizacje - ale z tego co kojarze to jak z tego korzystasz to już nie możesz mieć prywatnych (chyba).


jeden i pół terabajta powinno wystarczyć każdemu
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
1

Na bidbucket masz projekty A w projektach repzytoria. Ja chcesz mieć lokalnie to licencja kosztuje 10 usd na rok

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
1

@Tomek Pycia:
Nie będę się już upierał przy lokalnych repozytoriach. Jak będzie potrzebne to kupię. Wydaje się, że bitbucket spełnia moje oczekiwania. Te projekty to jest to czego szukałem.

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Już mam pierwszy problem. Jak mam dodać istniejącą solucję do bitbucket? Dodałem sobie wtyczkę do VS, zalogowałem się, wybieram opcję Create i tutaj zaczyna się problem...
https://imgur.com/7459ke3

Ta trzecia linia ze ścieżką mnie drażni. Nie chce tworzyć kolejnego folderu, chce wykorzystać istniejący folder z solucją. Da się w ogóle?

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
1

W jakim narzędziu to robisz? Ja zawsze zakładam projekt i repo na serwerze potem robie clona do katalogu gdzie mam mieć repo i potem wszystko dodaję do repo. Zrób sobie kopię, zanim zrobisz sciaganie repo do katalu gdzie już coś masz. Ja używam https://tortoisegit.org/ bo fajnie sie integruje z explorerem plików. Poszukaj te sobie jakiegoś podstawowego kursu gita tak, żeby mieć pojęcie jak z tym pracować.
DOC: https://confluence.atlassian.com/bitbucketserver/importing-code-from-an-existing-project-776640909.html

edytowany 1x, ostatnio: UglyMan
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

No właśnie nie chce kolejnego programu do dodawania tego. Tak jak pisałem wyżej, zainstalowałem wtyczkę do Visual Studio i z tego poziomu to robię. Twój sposób zadziałał, dodało mi solucję do repozytorium, ale teraz mam problem z dodaniem kolejnego repozytorium do tego samego projektu.
Team -> Projects -> Firma1 -> Add repositories
I zamiast formy mam info
All your team's repositories are already in this project. Add repositories from an individual account.

Mam rozumieć, że za darmo projekt może zawierać tylko jedno repozytorium?

UglyMan
Nigdy nie wczytywałem się w ograniczenia darmowej wersji. Ja akurat mam kupiona licencję do 10 użytkowników.
AdamWox
To wiele wyjaśnia. Śmieszna sprawa. Jak wchodzę na repozytoria tak jak pisałem to wyżej to nie da się dodać nowego do projektu, ale z głównego dashboard -> repository -> create repository, to tutaj mogę wybrać jakiego projektu się tyczy :D
kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Postów:925
1

Ta wtyczka do VS to jest g****. Mocno ograniczona. Co tam możesz poza commitowaniem i pushem? Chyba niewiele.
Zainstaluj sobie Sourcetree. Zrobisz tam prawie wszystko, masz fajny widok drzewka, integruje się to z Bitbucketem.


Keep calm and blame frontend.
Tell your cat I said pspsps.
KR
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:174
0

@AdamWox - A może masz w firmie jakiegoś NAS-a - Qnap czy Synology, one mają chyba w preinstalowanych pakietach min. serwer GIT. Wtedy masz wszystko bez ograniczeń, ale w lokalnej sieci firmy.

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

@Kristof: - Mam coś na wzór NAS-a, ale to nie ma dużych możliwości WD MY Cloud Personal Cloud Storage 3TB

@kzkzg
Już mnie właśnie szlak trafia... Dwa projekty mi przeszły, trzeci robi push tylko pliku .gitignore... Dlatego tyle czasu trzymałem się od tego z daleka. Czy to po prostu nie może działać? Faktycznie muszę mieć osobny program żeby na 100% wszystko poszło tak jak chce?

UglyMan
Początki są zawsze ciężkie jak się nie zna narzędzi i systemów. Ale jak już przetrzesz ścieżkę to potem będzie łatwiej. Inna sprawą jest też to, że jak pójdziesz pracować gdzie indziej to umiejetność pracy z gitem czy innym narzedziem kotroli wesji jest wymagana.
AdamWox
Wiem, mam nadzieje, że nie pójdę gdzie indziej pracować :D
KR
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:174
0
kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Postów:925
1

@AdamWox: Powinno działać, ale głowy nie dam. Pliki przed commitem musisz Stage'ować. Czyli jakby mówisz gitowi które pliki ma śledzić. Klikasz prawym i dajesz Stage. Robiłeś to?
Albo może masz własnie w gitignore jakiś wpis co ignoruje wszystko. Wywal tam tymczasowo wszystko i zobacz czy działa.
Ewentualnie z poziomu consoli zrob:

Kopiuj
git add .
git commit -m nazwaCommita
git push

I zobacz czy się dodało


Keep calm and blame frontend.
Tell your cat I said pspsps.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Wrocław
0

Ja ze swojej strony polecam http://gitextensions.github.io/ Tam są wszystkie funkcje, i jest dość czytelne w porównaniu z większością innych rozwiązań.

Ogólnie, co musisz mieć, to:

  1. Utworzone lokalne repozytorium gita.
  2. Utworzone repozytorium gdzieś w GH/BB/GL czy czymś.
  3. url zdalnego repozytorium trzeba dodać jako remote w repozytorium lokalnym. Można z GUI, można z konsoli.
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Ok @kzkzg z tym SourceTree jest lepiej. Parę rzeczy poszło sprawniej. Mam jeszcze jeden, mam nadzieje, że ostatni, problem. Jak powinien wyglądać plik .gitignore jeśli robię push całej solucji? Znalazłem gita z listą różnych możliwości, dla różnych języków github/gitignore, ale ten dla Visual Studio gitignore/VisualStudio.gitignore zakłada, że plik jest w projekcie, a nie wyżej w solucji jeśli tych projektów jest więcej niż jeden.

mad_penguin
mad_penguin
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Rzeszów
1

Gitignore może być wiele w dowolnym miejscu hierarchii katalogów, każdy projekt może mieć swojego, ale w powyższym przypadku ten plik powinien obsłużyć całą solucję. Jakieś konkretne pliki są przez niego pominięte w Twoim przypadku?

edytowany 1x, ostatnio: mad_penguin
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

To co najważniejsze pomija, commituje mi tylko 3 pliki .gitattributes, .gitignore, Backup2020.sln. Solucja zawiera 3 projekty. plik gitignore jest tam gdzie plik .sln

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)