Różne wersje pisanego programu

Różne wersje pisanego programu
JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0

Witam

Mam pytanko do bardziej doświadczonych programistów w kwestii pracowania nad kodem. Tworzę aplikację Django, który ma już całkiem spore rozmiary i powoli zaczynam się gubić w pewnych kwestiach. Pracuję na localhoscie i tam wszystko testuję, następnie przerzucam wszystko na serwer produkcyjny gdzie działa już właściwy projekt. Mam dwa różne pliki ```
settings.py

Kopiuj
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:7 minut
  • Postów:8403
1

A Django nie ma jakiegoś rozwiązania w tym celu?
W Ruby on Rails na przykład są specjalne środowiska (environments), które można równolegle ze sobą skonfigurować:
http://guides.rubyonrails.org/configuring.html#creating-rails-environments
możliwe, że Django też coś będzie takiego miało (ale w Django bardzo dawno temu pisałem).


JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0

A Django nie ma jakiegoś rozwiązania w tym celu?

Nic mi na ten temat nie wiadomo. Wydaje mi się, że najsensowniejszym rozwiązaniem byłoby nauczenie się pracy na gałęziach gita. Wtedy miałbym dajmy na to 3 wersje programu. I scalał bym te modyfikacje, które dla danej wersji byłyby odpowiednie.

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:14 dni
JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0

PIERWSZY link po wpisaniu w Google django settings.py multiple environments.

Poczytam. Dzięki.

mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
1

Powinieneś mieć jakić plik w stylu example.env i w nim wszystko co może być użyte, a do tego w każdym środowisku osobny plik .env który to jest w ignorowanych dla gita, ustawiasz go ręcznie na serwerze kopiując plik example.env i zmieniając w nim wartości. To jest przykład rozwiązania z tak nienawidzonego przez pythonowców php a dokładniej z laravela, więc wątpie, żeby się nie dało zrobić podobnie w pythonie.


It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
MichalTHEDUDE
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 7 lat
  • Postów:60
0

Co do gita to bez dwóch zdań powinieneś pracować na wielu branch'ach :D.
Obczaj sobie Successful git branching model
Pracuje i pracowałem w niejednym projekcie za pomocą tego modelu i bardzo sobie chwalę :).

hauleth
Oesusmarya najgłupsza rzecz w Gicie ever. Po co mieć master w Git Flow skoro każdy commit tam jest jednocześnie otagowany? Jak jeszcze feature branche lubię i używam, tak branch per wersja w większości przypadków softu webowego nie ma najmniejszego sensu. Zdecydowanie lepiej używać tagów na masterze a sam master to obecna wersja nightly. Każdy tag oznacza nową wersję na produkcji a jak potrzebujesz zrobić bugfix wstecz to cherry-pick i nowy tag, nie potrzeba nawet nowego brancha robić.
MichalTHEDUDE
Nie bardzo kumam z tym cherry-pickiem wstecz. Jak pracujesz cały czas na masterze, robisz taga, dorzucasz nowe featury i nagle chcesz zrobić hotfix - to niby jak? Nie za dużo motania jest przy Twojej wersji? Nie prościej mieć kilka branchów (razem z masterem) i mieć porządek i przejrzystość? Przy jak dużym projekcie stosujesz swoją metodologię?
hauleth
git checkout && git commit && git tag vX.Y.(Z+1) Nie trzeba brancha (bo po co, skoro to ma być tylko bugfix). 36k linii kodu w jednym, 21k w drugim (ale to jest rozbite na 5 projektów) oraz we wszystkim innym z czym pracuję. Tag na masterze oznacza wersję, a HEAD mastera to jest zawsze nightly, bez zbędnych develop branchy czy innych bzdur z Git Flow.
MichalTHEDUDE
Hmm, nigdy nie pracowałem Twoim systemem. Czy pracuje nad projektami parę osób? Co rozumiesz przez nightly? Nightly builds?
hauleth
Tak pracuje parę osób. Główna rzecz, która mi przeszkadza w Git Flow to to, że posiadanie mastera oraz development na raz jest bez sensu. Bo po co? To jest idealny wręcz przykład na to gdzie użyć brzytwy Ockhama.
MichalTHEDUDE
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 7 lat
  • Postów:60
0

Lol, @hauleth mieliśmy podobną dyskusję tutaj :D

JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0

Dzięki za podopowiedzi. Wydaje mi się, że sposób wskazany przez @MichalTHEDUDE jest chyba najwłaściwszy dla moich problemów. Program piszę samodzielnie, nie mam publicznego repozytorium, także nie obawiam się o wyciek danych w różnych settingsach. Po prostu tworzę jeden projekt, ale czasem potrzebuję np. żeby wersja demo była okrojona o jakieś funkcjonalności (np. brak możliwości skasowania konkretnego użytkownika). Jednym słowem powinna zawierać wszystko co jest w branchu master z małą modyfikacją i swoim plikiem ```
settings.py

Kopiuj
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

jak jeszcze powiesz, że trzymasz dane logowania do bazy etc w repo to pogratulować... Jeden z największych błędów bezpieczeństwa jakie można popełnić.


It's All About the Game.
JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0

jak jeszcze powiesz, że trzymasz dane logowania do bazy etc w repo to pogratulować...

Repozytorium trzymam wyłącznie lokalnie. Chodzi Ci o to żeby ogólnie pliki settings czy inne zawierające dane logowania w ogóle nie były ujmowane przez GITa?

edytowany 1x, ostatnio: jundymek
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
1

Aha czyli nie korzystasz z githuba/bitbucketa/etc. ? No to też pięknie padnie ci dysk i wsiu nie ma projektu :D


It's All About the Game.
JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0

No to też pięknie padnie ci dysk i wsiu nie ma projektu :D

Jak padnie to będzie gdzie indziej. Kopia jest. O to się nie martw.

mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

Fajnie ale po to jest właśnie git, żeby repo trzymać zdalnie i mieć dostep z każdego miejsca i kompa do niego. Deeploy w takim wypadku też jest prosty, jedna komenda na serwerze i wszystko co potrzebne wgrane.


It's All About the Game.
JU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 2 lata
  • Postów:75
0
mr_jaro napisał(a):

Fajnie ale po to jest właśnie git, żeby repo trzymać zdalnie i mieć dostep z każdego miejsca i kompa do niego. Deeploy w takim wypadku też jest prosty, jedna komenda na serwerze i wszystko co potrzebne wgrane.

Ok. Ja mam dostęp na zasadzie synchronizacji poprzez Dropboxa. U mnie się sprawdza. Zmieniam komputer i mam to samo co na głównym. Tylko tak jak mówiłem wcześniej pracuję nad tym sam i nie udostępniam nikomu kodu. To pytanie z innej beczki. Jak rozwiązujesz problem plików zawierających właśnie dane logowania (np. w Djangowym ```
settings.py

Kopiuj
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

nie pisze w pythonie ale wiem, że pliki środowiskowe są tam tak samo dostępne jak i w innych językach, zresztą opisałem ci na przykładzie laravela jak to się robi. Takiego pliku środowiskowego nie trzymam na repo, na repo trzymam wzór i na konkretne maszynie ten wzór kopiuje, ustawiam odpowiednią nazwę i ustawiam wartości w tym dane logowania do baz.

Edit: proszę bardzo https://github.com/theskumar/python-dotenv


It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
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)