Software Developing in Group

KandyMalli

Well-known member
  • Feb 15, 2018
    4,268
    3,900
    113
    Mchn,

    Features separate GIT branches walata ganna.

    Features complete unama master ekath ekka merge kranna.

    GIT tutorial tikak follow kranna.
     

    NEMISIS

    Well-known member
  • Nov 13, 2013
    11,364
    19,482
    113
    Colombo
    ඕක තනි වෙබ් ඇප් එකක් නම් ෆ්‍රන්ට් එන්ඩ් එකටයි බැක් එන්ඩ් එකටයි වෙනම රිපෝ දෙකක් ඕන නැහැ
    ඇප් දෙකක් වගේ ලියනවා නම්, ඒ කියන්නෙ රියැක්ට් වලින් වගේ ෆ්‍රන්ට් එන්ඩ් එක හදලා බැක් එන්ඩ් එකේ සේරම ෆන්නලිටීස් API එකක් විදියට එක්ස්පෝස් කරනවා නම් රිපෝ දෙකක් විදියට තියා ගත්තට අවුලක් නැහැ

    ඔයාට ඔය තියන ප්‍රශ්නෙ විසදන්නම තමයි සෝස් කන්ට්‍රෝල් තියෙන්නෙ

    සරලව කිවුවොතින් මෙහෙමයි
    මේ ගිට් (GIT) යූස් කරන හැටි

    රිපෝ එකක් හදනවා ඒකෙ බ්‍රාන්චස් කියලා කන්සෙප්ට් එකක් තියනවා, සාමාන්‍යඑන් ස්ටෑන්ඩඩ බ්‍රානචස් 2ක් තියනවා master සහ develop කියලා
    master branch එකේ තියෙන්න ඕන ඕනම වෙලාවක දැනට තියන ස්ටේබල්ම කෝඩ් එක, අයිඩියලි ඕනම වෙලාවක මාස්ටර් එකේ තියන එක ඩිප්ලෝයි කරන්න පුලුවන් තත්වෙක තියෙන්න ඕන. බාගෙට හැදුවා උනත් හදපු ටික වැඩ කරන තත්වෙන් තියෙන්න ඕන
    develop එකේ දැනට තියන ලේටස්ට්ම බිල්ඩ් කරන්න පුලුවන් (කම්පයිලර් එරර්ස් නැති) වර්ශන් එක තියෙන්න ඕන. මේක ටෙස්ට් වෙලා නැති වෙන්න පුලුවන්. සමහර හදපු දේවල් බාගෙට වැඩ කරන්න පුලුවන් ඒක අවුලක් නැහැ

    ඕනම ඩිවලොපර් කෙනෙක් අලුතෙන් මොකක් හරි පටන් ගනිද්දි, ඩිවලොප් එක බේස් කරගෙන තමන්ට් බ්‍රාන්ච් එකක් හදාගන්න ඕන, ඒකට කියන්නෙ ෆීචර් බ්‍රාන්ච් එක කියලා
    තමන් ඒ බ්‍රාන්ච් එකේ ඉදන් වැඩ කරගෙන ඒ බ්‍රාන්ච් එකට කමිට් කර කර ඉන්න ඕන
    දවසකට සැරයක් වත් develop එක තමන්ගෙ බ්‍රාන්ච් එකට පුල් කරගන්නත් ඕන, මෙහෙම කරාම පස්සෙ ෆීචර් බ්‍රාන්ච් එක develop එකට merge කරද්දි එන කන්ෆ්ලික්ට් අඩුයි
    තමන්ගෙ වැඩේ ඉවර උනාට පස්සෙ develop එක තමන්ගෙ branch එකට පුල් කරගෙන තියන සේරම conflicts හදන්න ඕන හදලා develop බ්‍රානච් එකට පුල් රික්වෙස්ට්(Pull Request - PR) එකක් දාන්න ඕන, PR Approve කරන ටීම් ලීඩ් හරි කවුරු හරි PR එක බලලා වැලිඩේට් කරලා Approve කරනවා සමහර වෙලාවට ලීඩ් merge කරනවා සමහර වෙලාවට ඩිවලොපර්ට merge කරන්න දෙනවා(its up to your TL)

    අන්තිමට develop බ්‍රාන්ච් එක ටෙස්ට් කරලා ටෙස්ට් පාස් උනාට පස්සෙ master බ්‍රාන්ච් එකට develop එක merge කරනවා.

    සරලව කිවුවොතින් ඔහොම තමයි වැඩේ වෙන්න ඕන

    ඔයාගෙ ප්‍රශ්නෙ වෙනම කතා කරොත්
    එක ඩිවලොපර් කෙනෙක් මොනවා හරි controller එකක වැඩ කරනවා නම් එයා ඒක කරලා develop එකට PR එකක් දාල develop එකට merge කරනවා, වෙන ඩිවලොපර් කෙනෙක්ට ඒ controller එක ඕන නම් එයාගෙ ෆීචර් බ්‍රාන්ච් එකට ඩිවලොප් එක pull කරාම අර controller ටික එයාට එනවා එයාට ඒව වල වැඩ කරන්න පුලුවන්

    මුලින් ගිට් කමාන්ඩ් ලයින් එකෙන් යූස් කරන්න ඉගෙන ගන්න
    පස්සෙ sourcetree කියලා ෆ්‍රී ටූල් එකක් තියනවා(mac and windows only) ඒක දාගන්න එතකොට පට්ට ලේසියෙන් වැඩ ටික කරන්න පුලුවන්. ඒක bitbucket,github වගේ එකක් එක්කත් පුලුවන්, privately hosted git වලටත් පුලුවන්

    මේක මුල ඉදන් අගට කියවන්න දවස් දෙක තුනක් අරගෙන ගොඩක් දේවල් ඉගෙන ගන්න පුලුවන් (මම ඉගෙන ගත්තෙ මේකෙන්)
    https://git-scm.com/book/en/v2

    ඕක හොදට තේරුම් ගත්තට පස්සෙ git යූස් කරන workflow දෙක තුනක් යූස් කරන්නෙ කොහොමද කියලා බලන්න, ගොඩක්ම පොපියුලර් එක (git flow කියලා කියනවා) තමයි මම ඔය උඩින් එක්ස්ප්ලේන් කරේ, එහෙම කරලා තමන්ට කැමති workflow එකක් යූස් කරන්න
    මේකත් බලන්න එහෙම නැත්නම් git flow/ git workflow කියලා සර්ච් එකක් දාන්න, github එකෙන් එහෙම දාපු හොද ගයිඩ් තියනවා
    https://git-scm.com/docs/gitworkflows


    මේ බොහොම සරලව එක්ස්ප්ලේන් කරේ තව ගොඩක් දේවල් තියනවා ඉගෙන ගන්න
    මේවත් අනිවා විශේශයෙන් හොයලා ඉගෙන ගන්න, වැදගත් වෙනවා
    Rebase
    Cherry Pick
    Patch
     
    Last edited:

    sithija.h

    Well-known member
  • Nov 21, 2008
    9,679
    5,904
    113
    Matara
    වැඩ කරලා නෑ එහෙම ලොකුවට.. පුලුවන්නම් පොඩි intro එකක් දෙන්නකො




    GIT Source control eka use karama ekata remote repository ekak ganna wenawa mcn. ara kalin kenek kiyala thibba wage bitbucket, gitlab wage ewa use karanna puluwan.


    Ethakota Remote repository and local repository kiyala dekak thiyanawa mcn. Local repo kiyanne unbe PC eke hadila thiyena repository eka. Remote repo eka thamai GitLab, bitbucket wage unba select karana host eke thiyana repository eka.



    oya dekema MASTER branch ekak thiyanawa bn, eka thamai head eka. anthimedi deployment karanna use karanne menna meh branch eka thamai normally.


    ethakota mcn ara kalin member kenek kiwwa wage team manage karana account ekak hadanna ona. ASANA, Manstishub, Trello, onna oya wage service thiyanawa unba kamathi ekak select karapan. Trello & Asana free mama danna tharamin.



    eh wage team manage karana site ekak use karala unba team memberslata task assign karapan. assign karaddi hama task ekakatama UNIQUE number ekak add karanna. eta passe team memberta kiyanna eh number eken eyage local repo eke branch ekak create karagena wada karanna kiyala. meka thamai mcn standard eka.


    Branches hadanawa kiyanne mcn,


    oya git repository system eka ගහක අතු bedanawa wage mcn. MASTER branch eken ona tharam kadanna puluwan branches. MASTER branch eken thawa branch ekak haduwa kiyanne master branch ekama replicate wenawa mcn. eta passe team memberslata puluwan thamange local repository eke eya hadagaththa branch eke wada karanna. wada karala iwara unama eh changes push karanna ona remote repository ekata. eh push karanawa welawe mcn remote repository eketh ara name ekenma branch ekak create wenawa. eta passe team leaderta puluwan code changes review karala eka master branch ekata merge karanna. ehema karapu gamanma MASTER branch eka update wenawa remote repository eke. eta passe hama member kenektama puluwan remote repo eke thiyana master branch eka thamange local REPO eke MASTER branch ekata pull karanna, ehema karapu gaman thamange solution ekath update wenawa mcn.


    Eta passe oya merge confliction kiyanne mcn developersla keepadenek ekama file ekaka wada karala hamoma changes push karoth thamange branch ekata, eka MASTER ekata merge karanna yaddi conflict wenna puluwan mcn. ethakota eh developersla denna ekathu wela eka resolve karanna ona mcn. mama free welawak labunoth screenshots tikak dala wade pennannam.





    mewa thamai mcn GIT wela basic dewal...
    prashna thiyenam ahanna ona ekak
     

    sithija.h

    Well-known member
  • Nov 21, 2008
    9,679
    5,904
    113
    Matara
    ඕක තනි වෙබ් ඇප් එකක් නම් ෆ්‍රන්ට් එන්ඩ් එකටයි බැක් එන්ඩ් එකටයි වෙනම රිපෝ දෙකක් ඕන නැහැ
    ඇප් දෙකක් වගේ ලියනවා නම්, ඒ කියන්නෙ රියැක්ට් වලින් වගේ ෆ්‍රන්ට් එන්ඩ් එක හදලා බැක් එන්ඩ් එකේ සේරම ෆන්නලිටීස් API එකක් විදියට එක්ස්පෝස් කරනවා නම් රිපෝ දෙකක් විදියට තියා ගත්තට අවුලක් නැහැ

    ඔයාට ඔය තියන ප්‍රශ්නෙ විසදන්නම තමයි සෝස් කන්ට්‍රෝල් තියෙන්නෙ

    සරලව කිවුවොතින් මෙහෙමයි
    මේ ගිට් (GIT) යූස් කරන හැටි

    රිපෝ එකක් හදනවා ඒකෙ බ්‍රාන්චස් කියලා කන්සෙප්ට් එකක් තියනවා, සාමාන්‍යඑන් ස්ටෑන්ඩඩ බ්‍රානචස් 2ක් තියනවා master සහ develop කියලා
    master branch එකේ තියෙන්න ඕන ඕනම වෙලාවක දැනට තියන ස්ටේබල්ම කෝඩ් එක, අයිඩියලි ඕනම වෙලාවක මාස්ටර් එකේ තියන එක ඩිප්ලෝයි කරන්න පුලුවන් තත්වෙක තියෙන්න ඕන. බාගෙට හැදුවා උනත් හදපු ටික වැඩ කරන තත්වෙන් තියෙන්න ඕන
    develop එකේ දැනට තියන ලේටස්ට්ම බිල්ඩ් කරන්න පුලුවන් (කම්පයිලර් එරර්ස් නැති) වර්ශන් එක තියෙන්න ඕන. මේක ටෙස්ට් වෙලා නැති වෙන්න පුලුවන්. සමහර හදපු දේවල් බාගෙට වැඩ කරන්න පුලුවන් ඒක අවුලක් නැහැ

    ඕනම ඩිවලොපර් කෙනෙක් අලුතෙන් මොකක් හරි පටන් ගනිද්දි, ඩිවලොප් එක බේස් කරගෙන තමන්ට් බ්‍රාන්ච් එකක් හදාගන්න ඕන, ඒකට කියන්නෙ ෆීචර් බ්‍රාන්ච් එක කියලා
    තමන් ඒ බ්‍රාන්ච් එකේ ඉදන් වැඩ කරගෙන ඒ බ්‍රාන්ච් එකට කමිට් කර කර ඉන්න ඕන
    දවසකට සැරයක් වත් develop එක තමන්ගෙ බ්‍රාන්ච් එකට පුල් කරගන්නත් ඕන, මෙහෙම කරාම පස්සෙ ෆීචර් බ්‍රාන්ච් එක develop එකට merge කරද්දි එන කන්ෆ්ලික්ට් අඩුයි
    තමන්ගෙ වැඩේ ඉවර උනාට පස්සෙ develop එක තමන්ගෙ branch එකට පුල් කරගෙන තියන සේරම conflicts හදන්න ඕන හදලා develop බ්‍රානච් එකට පුල් රික්වෙස්ට්(Pull Request - PR) එකක් දාන්න ඕන, PR Approve කරන ටීම් ලීඩ් හරි කවුරු හරි PR එක බලලා වැලිඩේට් කරලා Approve කරනවා සමහර වෙලාවට ලීඩ් merge කරනවා සමහර වෙලාවට ඩිවලොපර්ට merge කරන්න දෙනවා(its up to your TL)

    අන්තිමට develop බ්‍රාන්ච් එක ටෙස්ට් කරලා ටෙස්ට් පාස් උනාට පස්සෙ master බ්‍රාන්ච් එකට develop එක merge කරනවා.

    සරලව කිවුවොතින් ඔහොම තමයි වැඩේ වෙන්න ඕන

    ඔයාගෙ ප්‍රශ්නෙ වෙනම කතා කරොත්
    එක ඩිවලොපර් කෙනෙක් මොනවා හරි controller එකක වැඩ කරනවා නම් එයා ඒක කරලා develop එකට PR එකක් දාල develop එකට merge කරනවා, වෙන ඩිවලොපර් කෙනෙක්ට ඒ controller එක ඕන නම් එයාගෙ ෆීචර් බ්‍රාන්ච් එකට ඩිවලොප් එක pull කරාම අර controller ටික එයාට එනවා එයාට ඒව වල වැඩ කරන්න පුලුවන්

    මුලින් ගිට් කමාන්ඩ් ලයින් එකෙන් යූස් කරන්න ඉගෙන ගන්න
    පස්සෙ sourcetree කියලා ෆ්‍රී ටූල් එකක් තියනවා(mac and windows only) ඒක දාගන්න එතකොට පට්ට ලේසියෙන් වැඩ ටික කරන්න පුලුවන්. ඒක bitbucket,github වගේ එකක් එක්කත් පුලුවන්, privately hosted git වලටත් පුලුවන්

    මේක මුල ඉදන් අගට කියවන්න දවස් දෙක තුනක් අරගෙන ගොඩක් දේවල් ඉගෙන ගන්න පුලුවන් (මම ඉගෙන ගත්තෙ මේකෙන්)
    https://git-scm.com/book/en/v2

    ඕක හොදට තේරුම් ගත්තට පස්සෙ git යූස් කරන workflow දෙක තුනක් යූස් කරන්නෙ කොහොමද කියලා බලන්න, ගොඩක්ම පොපියුලර් එක (git flow කියලා කියනවා) තමයි මම ඔය උඩින් එක්ස්ප්ලේන් කරේ, එහෙම කරලා තමන්ට කැමති workflow එකක් යූස් කරන්න
    මේකත් බලන්න එහෙම නැත්නම් git flow/ git workflow කියලා සර්ච් එකක් දාන්න, github එකෙන් එහෙම දාපු හොද ගයිඩ් තියනවා
    https://git-scm.com/docs/gitworkflows


    හරියටම කියල තියෙනව. මට මිස් වුණ ටිකකුත් කියල තියෙනව මචං :yes::yes::yes:.
    එල! :)
     

    sithija.h

    Well-known member
  • Nov 21, 2008
    9,679
    5,904
    113
    Matara
    Mama hithanne meke watila thiyena post welin source control karana widiya gana honda awabodayak labenna athi oyata. practice ekenma thamai mcn ithuru tika hadenne.

    ethanin eha team eka lead karana widiyath ithin amuthuma pattern ekak thamai mcn mathak wena dewal mama meke dannam.

    danata mathak una tikak,

    Project eke foundation eka hadala denna ona. eh kiwwe ASP .Net MVC karanawa nam ganata folders tika hadala deela, controller tika hadala denna ona mcn project eka start karana leader. eta passe common use wena dewal decide karanna ona team leader. eh kiwwe Encryption/decryption libraries use karanawa nam, login approach eka yanna ona widiya, oya wage common hama deyakma decide karanna ona mulinma. thawa mathak unoth dannam mcn
     

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28
    ඕක තනි වෙබ් ඇප් එකක් නම් ෆ්‍රන්ට් එන්ඩ් එකටයි බැක් එන්ඩ් එකටයි වෙනම රිපෝ දෙකක් ඕන නැහැ
    ඇප් දෙකක් වගේ ලියනවා නම්, ඒ කියන්නෙ රියැක්ට් වලින් වගේ ෆ්‍රන්ට් එන්ඩ් එක හදලා බැක් එන්ඩ් එකේ සේරම ෆන්නලිටීස් API එකක් විදියට එක්ස්පෝස් කරනවා නම් රිපෝ දෙකක් විදියට තියා ගත්තට අවුලක් නැහැ

    ඔයාට ඔය තියන ප්‍රශ්නෙ විසදන්නම තමයි සෝස් කන්ට්‍රෝල් තියෙන්නෙ

    සරලව කිවුවොතින් මෙහෙමයි
    මේ ගිට් (GIT) යූස් කරන හැටි

    රිපෝ එකක් හදනවා ඒකෙ බ්‍රාන්චස් කියලා කන්සෙප්ට් එකක් තියනවා, සාමාන්‍යඑන් ස්ටෑන්ඩඩ බ්‍රානචස් 2ක් තියනවා master සහ develop කියලා
    master branch එකේ තියෙන්න ඕන ඕනම වෙලාවක දැනට තියන ස්ටේබල්ම කෝඩ් එක, අයිඩියලි ඕනම වෙලාවක මාස්ටර් එකේ තියන එක ඩිප්ලෝයි කරන්න පුලුවන් තත්වෙක තියෙන්න ඕන. බාගෙට හැදුවා උනත් හදපු ටික වැඩ කරන තත්වෙන් තියෙන්න ඕන
    develop එකේ දැනට තියන ලේටස්ට්ම බිල්ඩ් කරන්න පුලුවන් (කම්පයිලර් එරර්ස් නැති) වර්ශන් එක තියෙන්න ඕන. මේක ටෙස්ට් වෙලා නැති වෙන්න පුලුවන්. සමහර හදපු දේවල් බාගෙට වැඩ කරන්න පුලුවන් ඒක අවුලක් නැහැ

    ඕනම ඩිවලොපර් කෙනෙක් අලුතෙන් මොකක් හරි පටන් ගනිද්දි, ඩිවලොප් එක බේස් කරගෙන තමන්ට් බ්‍රාන්ච් එකක් හදාගන්න ඕන, ඒකට කියන්නෙ ෆීචර් බ්‍රාන්ච් එක කියලා
    තමන් ඒ බ්‍රාන්ච් එකේ ඉදන් වැඩ කරගෙන ඒ බ්‍රාන්ච් එකට කමිට් කර කර ඉන්න ඕන
    දවසකට සැරයක් වත් develop එක තමන්ගෙ බ්‍රාන්ච් එකට පුල් කරගන්නත් ඕන, මෙහෙම කරාම පස්සෙ ෆීචර් බ්‍රාන්ච් එක develop එකට merge කරද්දි එන කන්ෆ්ලික්ට් අඩුයි
    තමන්ගෙ වැඩේ ඉවර උනාට පස්සෙ develop එක තමන්ගෙ branch එකට පුල් කරගෙන තියන සේරම conflicts හදන්න ඕන හදලා develop බ්‍රානච් එකට පුල් රික්වෙස්ට්(Pull Request - PR) එකක් දාන්න ඕන, PR Approve කරන ටීම් ලීඩ් හරි කවුරු හරි PR එක බලලා වැලිඩේට් කරලා Approve කරනවා සමහර වෙලාවට ලීඩ් merge කරනවා සමහර වෙලාවට ඩිවලොපර්ට merge කරන්න දෙනවා(its up to your TL)

    අන්තිමට develop බ්‍රාන්ච් එක ටෙස්ට් කරලා ටෙස්ට් පාස් උනාට පස්සෙ master බ්‍රාන්ච් එකට develop එක merge කරනවා.

    සරලව කිවුවොතින් ඔහොම තමයි වැඩේ වෙන්න ඕන

    ඔයාගෙ ප්‍රශ්නෙ වෙනම කතා කරොත්
    එක ඩිවලොපර් කෙනෙක් මොනවා හරි controller එකක වැඩ කරනවා නම් එයා ඒක කරලා develop එකට PR එකක් දාල develop එකට merge කරනවා, වෙන ඩිවලොපර් කෙනෙක්ට ඒ controller එක ඕන නම් එයාගෙ ෆීචර් බ්‍රාන්ච් එකට ඩිවලොප් එක pull කරාම අර controller ටික එයාට එනවා එයාට ඒව වල වැඩ කරන්න පුලුවන්

    මුලින් ගිට් කමාන්ඩ් ලයින් එකෙන් යූස් කරන්න ඉගෙන ගන්න
    පස්සෙ sourcetree කියලා ෆ්‍රී ටූල් එකක් තියනවා(mac and windows only) ඒක දාගන්න එතකොට පට්ට ලේසියෙන් වැඩ ටික කරන්න පුලුවන්. ඒක bitbucket,github වගේ එකක් එක්කත් පුලුවන්, privately hosted git වලටත් පුලුවන්

    මේක මුල ඉදන් අගට කියවන්න දවස් දෙක තුනක් අරගෙන ගොඩක් දේවල් ඉගෙන ගන්න පුලුවන් (මම ඉගෙන ගත්තෙ මේකෙන්)
    https://git-scm.com/book/en/v2

    ඕක හොදට තේරුම් ගත්තට පස්සෙ git යූස් කරන workflow දෙක තුනක් යූස් කරන්නෙ කොහොමද කියලා බලන්න, ගොඩක්ම පොපියුලර් එක (git flow කියලා කියනවා) තමයි මම ඔය උඩින් එක්ස්ප්ලේන් කරේ, එහෙම කරලා තමන්ට කැමති workflow එකක් යූස් කරන්න
    මේකත් බලන්න එහෙම නැත්නම් git flow/ git workflow කියලා සර්ච් එකක් දාන්න, github එකෙන් එහෙම දාපු හොද ගයිඩ් තියනවා
    https://git-scm.com/docs/gitworkflows


    මේ බොහොම සරලව එක්ස්ප්ලේන් කරේ තව ගොඩක් දේවල් තියනවා ඉගෙන ගන්න
    මේවත් අනිවා විශේශයෙන් හොයලා ඉගෙන ගන්න, වැදගත් වෙනවා
    Rebase
    Cherry Pick
    Patch

    ගොඩක් thanx ayye. නොදාන්න ගොඩාක් දේවල් මේකෙන් ඉගෙනගත්තා. අපි industry එකේ වෙනවා ඇති කියල උපකල්පනය කරපු විදිය නෙවෙයි ඇත්තටම ඒක වෙන්නෙ.. ගොඩාක් වෙනස්, ගොඩක් ලේසි, හරියටම standard වලට යනව කියලා තේරුනා. Thanx අයියෙ මේ ව්දියට කියල දුන්නට
     

    gembaknb

    Active member
  • Oct 13, 2014
    899
    50
    28


    GIT Source control eka use karama ekata remote repository ekak ganna wenawa mcn. ara kalin kenek kiyala thibba wage bitbucket, gitlab wage ewa use karanna puluwan.


    Ethakota Remote repository and local repository kiyala dekak thiyanawa mcn. Local repo kiyanne unbe PC eke hadila thiyena repository eka. Remote repo eka thamai GitLab, bitbucket wage unba select karana host eke thiyana repository eka.



    oya dekema MASTER branch ekak thiyanawa bn, eka thamai head eka. anthimedi deployment karanna use karanne menna meh branch eka thamai normally.


    ethakota mcn ara kalin member kenek kiwwa wage team manage karana account ekak hadanna ona. ASANA, Manstishub, Trello, onna oya wage service thiyanawa unba kamathi ekak select karapan. Trello & Asana free mama danna tharamin.



    eh wage team manage karana site ekak use karala unba team memberslata task assign karapan. assign karaddi hama task ekakatama UNIQUE number ekak add karanna. eta passe team memberta kiyanna eh number eken eyage local repo eke branch ekak create karagena wada karanna kiyala. meka thamai mcn standard eka.


    Branches hadanawa kiyanne mcn,


    oya git repository system eka ගහක අතු bedanawa wage mcn. MASTER branch eken ona tharam kadanna puluwan branches. MASTER branch eken thawa branch ekak haduwa kiyanne master branch ekama replicate wenawa mcn. eta passe team memberslata puluwan thamange local repository eke eya hadagaththa branch eke wada karanna. wada karala iwara unama eh changes push karanna ona remote repository ekata. eh push karanawa welawe mcn remote repository eketh ara name ekenma branch ekak create wenawa. eta passe team leaderta puluwan code changes review karala eka master branch ekata merge karanna. ehema karapu gamanma MASTER branch eka update wenawa remote repository eke. eta passe hama member kenektama puluwan remote repo eke thiyana master branch eka thamange local REPO eke MASTER branch ekata pull karanna, ehema karapu gaman thamange solution ekath update wenawa mcn.


    Eta passe oya merge confliction kiyanne mcn developersla keepadenek ekama file ekaka wada karala hamoma changes push karoth thamange branch ekata, eka MASTER ekata merge karanna yaddi conflict wenna puluwan mcn. ethakota eh developersla denna ekathu wela eka resolve karanna ona mcn. mama free welawak labunoth screenshots tikak dala wade pennannam.





    mewa thamai mcn GIT wela basic dewal...
    prashna thiyenam ahanna ona ekak

    Mama hithanne meke watila thiyena post welin source control karana widiya gana honda awabodayak labenna athi oyata. practice ekenma thamai mcn ithuru tika hadenne.

    ethanin eha team eka lead karana widiyath ithin amuthuma pattern ekak thamai mcn mathak wena dewal mama meke dannam.

    danata mathak una tikak,

    Project eke foundation eka hadala denna ona. eh kiwwe ASP .Net MVC karanawa nam ganata folders tika hadala deela, controller tika hadala denna ona mcn project eka start karana leader. eta passe common use wena dewal decide karanna ona team leader. eh kiwwe Encryption/decryption libraries use karanawa nam, login approach eka yanna ona widiya, oya wage common hama deyakma decide karanna ona mulinma. thawa mathak unoth dannam mcn

    ඔව් අය්යෙ. ගොඩාක් දේවල් මං මේකෙන් ඉගෙනගත්ත. ගොඩක් ස්තූතීයි ඔයාලා හැමෝටම. නොදන්න ගොඩක් දේවල් ඉගෙනගත්තා. කොහොමද දේවල් වෙන්න ඕන, කොහොමද හරියට දෙයක් manage කරන්නෙ කියන එක ඔක්කොම හොඳ අවබෝධයක් ගන්න පුලුවන් වුනා.
    Thanx අයියෙ ඔයාලා හැමෝටම මහන්සි වෙලා මේ දේවල් කියලා දුන්නට.
    අපි කොහොමත් MVC pattern එක තමයි යන්නෙ projects වලට. ඒකෙ controllers ටිකත් හදල දෙන්න ඕන team leaderද? Folder ටික හදලා දීල, repo branch එකකට දාල වැඩ පටං ගත්තම, developerගෙ task එකට අදාලව එයා controller එක හදනවා. ඊට පස්සෙ frontend කරන set එකට ඒකෙ API ටික දෙනවා. එහෙමද වෙන්න ඕන? නැත්තන් API ටික එහෙම තීරණය කරන්න ඕනෙත් teamleaderද?
     

    NEMISIS

    Well-known member
  • Nov 13, 2013
    11,364
    19,482
    113
    Colombo
    ඔව් අය්යෙ. ගොඩාක් දේවල් මං මේකෙන් ඉගෙනගත්ත. ගොඩක් ස්තූතීයි ඔයාලා හැමෝටම. නොදන්න ගොඩක් දේවල් ඉගෙනගත්තා. කොහොමද දේවල් වෙන්න ඕන, කොහොමද හරියට දෙයක් manage කරන්නෙ කියන එක ඔක්කොම හොඳ අවබෝධයක් ගන්න පුලුවන් වුනා.
    Thanx අයියෙ ඔයාලා හැමෝටම මහන්සි වෙලා මේ දේවල් කියලා දුන්නට.
    අපි කොහොමත් MVC pattern එක තමයි යන්නෙ projects වලට. ඒකෙ controllers ටිකත් හදල දෙන්න ඕන team leaderද? Folder ටික හදලා දීල, repo branch එකකට දාල වැඩ පටං ගත්තම, developerගෙ task එකට අදාලව එයා controller එක හදනවා. ඊට පස්සෙ frontend කරන set එකට ඒකෙ API ටික දෙනවා. එහෙමද වෙන්න ඕන? නැත්තන් API ටික එහෙම තීරණය කරන්න ඕනෙත් teamleaderද?

    TL එහෙම controllers හදලා දෙන්නෙ නැහැ, එහෙම කරනවා නම් TL ට කරන්න වෙන වැඩක් නැති වෙනවා
    සාමාන්‍යෙන් ඩිවලොපර්ස්ලා කරන්නෙ මොකද්ද කියලා TL හොයලා බලනකොට වැරදියට කන්ට්‍රෝලර් එහෙම හදලා තියනවා නම් ඒව වෙනස් කරවනවා
    ගොඩක් වෙලාවට API එහෙම තීරනය කරන්නෙ ප්ලෑනින් ටයිම් එකේදි, ටීම් එකම එකතු වෙලා. මුලින් අවශ්‍ය API ටික සහ ඒවයෙ Input/Oputput සහ Structure එක වගේ දේවල් ප්ලෑනින් ලෙවල් එකේදි කතා කරලා ඩොකයුමන්ට් කරන්න ඕන (සමහර වෙලාවට ඩමී ඩේට දාල Mock API හදලා දෙනවා frontend ඩිවලොපර්ස්ලාට, ඇත්ත API ටික හදනකන් වැඩ කරගෙන යන්න)
    එතකොට බැක් එන්ඩ් ඩිවලොපර් වැඩ කරන අතරතුරේදි frontend අයට කරගෙන යන්න පුලුවන්
    backend එක ඉවර කරාම හරි API එකට පොයින්ට් කරලා ටෙස්ට් කරන්න විතරයි තියෙන්නෙ
    මුලින් ඩිෆයින් කරගනිපු API වලට අමතරව මොනවා හරි ඕන නම් ආපහු කතා කරලා අලුත් API එකක් ඕන කියලා තීරනය කරන්න පුලුවන් ඒ වගේ ඒවයෙ ගොඩක් වෙලාවට තීරනය TL ගෙ තමයි

    සාමාන්‍යෙන් TL කරන්නෙ බේස් ප්‍රොජෙක්ට් එක හදලා සෝස් කන්ට්‍රෝලර් එක සෙටප් කරලා දෙන එක
    බේස් ප්‍රොජෙක්ට් එක හදද්දි,ඩිපෙන්ඩන්සි මැනේජ්මන්ට් සිස්ට්ම් එක init කරලා මුලික දේවල් ටික දාල, ප්‍රජෙක්ට් ස්ට්‍රක්චර් එක හදලා(ඔයා කියලා තියන්නෙ ෆෝල්ඩර් ටික කියලා) එහෙම කරලා දෙනවා
    මේකට ස්ටෑන්ඩඩ් එකක් නැහැ කම්පැනි සහ TL ගෙ කැමැත්ත අනුව එයා කරන දේවල් වෙනස් වෙන්න පුලුවන්
    සමහරවිට මේ දේවල් සීනියර් ඉන්ජිනියර් කෙනෙක් වගේ කරන්නත් පුලුවන්

    සාමාන්‍යෙන් TL කරන්නෙ ටීම් එක මැනේජ් කරනගමන් ප්‍රොජෙක්ට් එක ටෙක්නිකලි ඩ්‍රයිව් කරගෙන යන එක
    මොනවා හරි ප්‍රොජෙක්ට් එකට අදාල ටෙක්නිකල් ඩිසිශන් එහෙම TL තමයි ගන්නෙ
    තව කෝඩ් කොලිටි එහෙම කෙලින්ම TL බලනවා (මේව කම්පැනි අනුව වෙනස් වෙනවා දල වශයෙන් කිවුවෙ)
    ඩිවලොපර් කෙනෙක් එහෙම ස්ටක් උනොත් හරි කරන විදිය ගැන අයිඩියා එකක් ගන්න ඕන උනොත් හෙල්ප් කරන එක TL ගෙ වගකීමක්
    සමහර වෙලාවට TL කෝඩ් කරන අවස්තාවල් තියනවා එහෙම වෙන්නෙ ක්‍රිටිකල් දේවල් හරි කම්ප්ලෙක්ස් දේවල් වගේ වෙලාවල් වලදි
    හැබැයි ගොඩක් වෙලාවට TLට කෝඩ් කරන්න වෙලාවක් ඇත්තෙම නැති වෙන්න පුලුවන්

    TL ගෙ රෙස්පොන්සිබිලිටීස් කම්පැනිය අනුව වෙනස් වෙනවා ඒක නිසා ඔය කියපුවා ඔහොමමයි කියලා හිතන්න එපා, ඔයා වැඩ කරන තැන කොහොමද වෙන්නෙ කියලා බලලා ඒ විදියට ඇඩැප්ට් වෙන්න