Angular wala basic karanm Eken mona hari projects build karanna try karanna. Thawa angular wala best practices balanna.
Hodama de company ekakata join wena eka ethokota kohomath okkoma dewal hadenawa.
Thawa books, articles kiyawanna
Angular wala basic karanm Eken mona hari projects build karanna try karanna. Thawa angular wala best practices balanna.
Hodama de company ekakata join wena eka ethokota kohomath okkoma dewal hadenawa.
Thawa books, articles kiyawanna
bit eka karapn eka hodai. habai eka withrak uba kara kiyala madi.
mulin web development wala basic tika igena ganin. (front end + backend wala basics)
me tika hariyata goda dala application tikak hadala ube portfolio eka build karapn.
ethokota ubata job ekakata yaddi pennana puluwan.
ita passe company ekakta join unama ubata therei ubata hariyatama set wenne front end da nathnm backend da kiyla.
ethanin ehata ubata therei mona technologies da follow karanna ona kiyala.
thawa ube skills wadi karaganna articles kiywapn. books aran kiywapn.
math ghuwe me game ekamai. habai tikak kattak thiynwa thaniyama igena gaddi. habai aniwa goda ynna puluwan
good luck brother <3
docker,
docker කියන්නේ , ඔයාගේ entire software එක package කරලා easily deploy කරන්න පුළුවන් solution එකක්.
අපි locally development කරද්දී හොදට වැඩ කරන app එක, server එකට දැම්මට පස්සේ ඒක වැඩ කරන්නේ නැතිව යනවා. එතොකොට එක fix කරන්න අපිට ටිකක් වෙලා යනවා. එකට ගොඩක් හේතුව වෙන්නේ, අපෙ local environment එකයි server environment එකයි වෙනස් නිසා.
හැබැයි අපිට පුළුවන් docker use කරලා මේ problem එක solve කරන්න. එකට හේතුව locally docker ඇතුලේ app එක වැඩ කරනවනම්, docker run වෙන ඕන server එකක අපේ app එක වැඩ.
how docker works,
docker කියන්නේ containerization platform එකක්.
containerization එක්ක ලගින්ම යන අනිත් එක තමා virtualization කියන්නේ. අපි බලමු මොකක්ද මේ දෙකේ වෙනස කියල.
virtualization (2nd image ) කියන්නේ සරලව, host os එක උඩ hypervisor software එකක් run කරලා, එක uda virutal machines හදාගන්න එක.
එතොකොට ඒ හැම virtual machine ekak ඇතුලේම entire os එකක් run වෙනවා.
ex - virtual box කියන්නේ open source hyperviosr එකක්. අපිට windows os එකක් උඩ linux install කරන්න පුලූවන් dual boot කරන්නේ නැතුව.
එතකොට docker engine එක වැඩ කරන්නේ ?,
අපේ host os එක උඩ docker engine එක run කරනවා, ඊට පස්සේ docker වලට පුළුවන් isolated process හදන්න්න. මේ අපි හදන එක process එකකට කියනවා container එකක් කියල. ඇත්තටම container එකක තියෙන්නේ මොකක් හරි එක process එකක්. ex: apache server, mysql server..
එක lightweight, අනිත් process එක්ක isolated, ඒ වගේම host OS එකේ kernel එක තමා මෙ හැම container එකක්ම share කරගන්නේ.
ඒ වගේම virtual machine එකකට වඩා fast. එකට හේතුව virtual machine එකක් restart කරනවා කියන්නේ entire OS එකම restart වෙනවා කියන එක. හැබැයි container එකක් restart වෙනව කියන්නේ, දැනටමත් run වෙන host OS එකේ process එකක් restart වෙනවා කියන එක විතරයි.
basic terms of docker
container - isolated process එකක් (මොකක් හරි එක task එකක් , etc mysql server, nginx server )
image - container එකක් run කරන්න ඕන application library, system tools, configuration files වල එකතුවක්. ඒවගේම අපිට මේ එක image එකකින් multiple containers හදාගන්න පුළුවන්.
dockerfile - docker image එකක් create කරන්න ඕන instructions තමා අපි මේකේ ලියන්නේ. ex - environment variables, port mapping, මොන toolsද install වෙන්න ඕන කියල මේ file එකේ ලියන්න පුළුවන්.
docker registry - docker image එක store කරන්න පුළුවන් place එකක්.
ex: අපි git එක්ක github වගේ remote reporsitory එකක් තියාගන්නවා වගේ වැඩක්.
හරි දැන් අපි docker වලින් container එකක් හදල බලමු,
මුලින් ඔය docker install කරගන්න ඔයාගේ os එක අනුව.
https://docs.docker.com/get-docker/
check docker installed, then it will show the help menu
docker
pull mysql docker image from docker hub
docker pull mysql:5.7
view downloaded docker images
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 a4fdfd462add 5 days ago 448MB
create a docker container from docker image
docker run --name my_db -p 9000:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7
--name used for container name (අපිට කැමති නමක් දෙන්න පුළුවන් )
-e used for environment variables
-i or -d used for running mode,
container එකක් run වෙන විදී දෙකක් තියනව.
-p used for port mapping,
අපි මුලින් කිවා container එකක් කියන්නේ process එකක් කියල, එකියන්නේ සරලව container එක මොකක්හරි port එකක run වෙනව කියන එකයි . mysql ගත්තොත් එයා default port number 3306 එකේ run වෙනවා.
එකියන්නේ container eka athule අපේ mysql server එක port 3306 run wenawa. හැබැයි අපිට තාම අපේ host OS එකේ idan container එකට connect wenna බැහැ. මොකද host os එක මේ process eka ගැන දන්නේ නැති නිසා.
එනිසා අපිට සිද්ද වෙනවා container port එක ape host OS එකේ port එකකට map කරන්න. මං මේකේ 3306 කියන container eke run වෙන port එක 9000 kiyana host OS එකේ port එකකට map karala තියෙන්නේ.
check running containers
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3788c9366954 mysql:5.7 "docker-entrypoint.s…" 2 minutes ago Up About a minute 33060/tcp, 0.0.0.0:9000->3306/tcp my_db
now you can connect to the running container
mysql -h 127.0.0.1 -P 9000 -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
to stop running container,
docker ps # list running containers
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d3d87881b0ce mysql:5.7 "docker-entrypoint.s…" About an hour ago Up About an hour 33060/tcp, 0.0.0.0:9000->3306/tcp my_db
docker stop d3d87881b0ce # cotaniner id
get all containers (running or stopped)
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3788c9366954 mysql:5.7 "docker-entrypoint.s…" 5 minutes ago Up 11 seconds 33060/tcp, 0.0.0.0:9000->3306/tcp my_db
c9142a5d1251 char:latest "/bin/bash ./run.sh" 8 days ago Exited (1) 8 days ago pensive_shtern
8266e6f237e2 5c8c4e171da6 "/bin/bash ./run.sh" 8 days ago Exited (1) 8 days ago
මේක docker වල basic overview එකක් විතරයි. තව ගොඩක් concepts තියනවා ඉගෙන ගන්න. මං ඒවත් ඉස්සරහට දාන්නම්.
meka balapn machn meke thiyanawa https://paycorp-international.gitbook.io/quick-web/
awulak awoth kiyapn mn lagadi paycorp eka use kara.
mchn uba backend walata aluthnisa mulin php igenaganin, hethuwa ubata framework ekak igena ganna one na mulin, peo php use karala backend wala services wada karana widiha hodata igena ganna puluwan.... anith eka project eka live dana ekath beginner kenekta hari lesiyen php wala karanna puluwan...
node igena ganna eka hodai... habai ubata kathandara godak igena ganna wei... ex node project ekak live dana ekath wenama kathandarayak...
mannm kiyanne first php goda dapan, ubata jobakata yanna puluwan.. ita passe ekko php walinma issarahata yanwanm php frameworks igena ganin... nathnm python, node wage ekak igena ganin....
math mulin igangaththe php, dn python <3
Im using Python <3 for web development
What is Django ?
django කියන්නේ python language එක base කරන් හදපු framework එකක්.
then What is framework ?
application එකක් build කරන්න ඕන කරන tools වල එකතුවක් කිසියම් standard එකක් එක්ක. එකියන්නේ authentication & authorization , form validation, database mapping, security වගේ තව ගොඩක් දේවල් වල එකතුවක්.
තව framework එකක ඒගොල්ලොන්ට අදාලව වෙනම rules තියනව... අපිට එතොකොට e rules follow කරන්න සිද්දවෙනවා
හරි එහනම්, Django පටන් ගන්න කලින් මේ post එකෙන් python basics ටික cover කරන්නම්.. එතොකොට එක python වලට aluth එක්කෙනේක්ටත් උදව්වක් වෙයි...
Python Introduction
Python is one of the high-level, support multiple programming paradigms, interpreted and general-purpose programming language that is easy to use.
python කියන්නේ general purpose language එකක් නිසා ඔයාට ගොඩක් දේවල් වලට use karanna puluwan .
මම දකින විදිහට python කියන්නේ දැනට තියන ලස්සනම, එවගෙම් ගොඩක් strong, programming language එකක් :wink:
හරි එහෙනම් මුලින්ම python install karaganna download
Variables
data store කරන්න පුළුවන් Tempory memory allocation unit ekak
# string
name = "john"
# numbers
age = 22
# boolean
hasError = True
# in python world everything is an object
type(name)
<class 'str'>
Control Flow
කිසියම් condition එකක් මත අපේ program එක run වෙන්න ඕනෙනම් අපි if / else use කරනවා
python වල code block වල (loop , ifelse , function ) scope eka (සරලව කිවොත් area එක) අපි define කරන්නේ indentation walin.
අපි indentation වලට spaces 4ක් use කරනවා...
# single condition
condition = True
if condition:
print('condition is true this will execute')
else:
print('condition is false this will execute')
# multiple condition
if condition:
pass
elif condition:
pass
else:
pass
Ternary Operator
මේ operatior එකෙන් condition statement single line ලියන්න පුළුවන්
[If True] if [Expression] Else [If False]
name = "john"
hasJohn = True if name == "john" else False
Collections
LIST,
multiple values store කරන්න පුළුවන් data structure(layout ) එකක්
mutable (update-able) - එකියන්නේ list එකේ store කරපු values change කරන්න පුළුවන්
# js wala array ekak wage
# list eka index eka patan ganne 0 walin
names = ['john', 'max', 'kevin']
names[0]
# john
names[1] = "ann"
names
# ["john", "ann", "kevin"]
Tuple
constant list එකක් එකියන්නේ change karanna bari list එකක් ()
names = ('john', 'kevin')
names[1] = "max"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Dictionaries
key value pair එකක්...
mutable datastructure ekak
js වල object එකක් වගේ. php වලනම් assosiative array එකක් වගේ
person = {
'name': 'max',
'age': 23
}
person['name']
# max
Loop
අපිට මොකක් හරි task එකක් repeatedly කරන්න ඕනනම් අපි loop use කරනවා..
condition eka false wenakan loop eke body eka execute wenawa..
loop එකක structure එක තමා පල්ලහ දාල තියෙන්නේ
# while loop
number = 1
while number < 6:
print(number)
number += 1 # 1, 2, 3, 4, 5
# for loop
numbers = [10, 20, 30, 40]
for n in numbers:
print(n) # 10, 20, 30, 40
# single line
person = {
'name': 'max',
'age': 23
}
# items() method used to return list with all keys and values
# [ ['name', 23], ['age', 23] ]
for key, value in person.items():
print(key) # name , age
print(value) # max , 23
Functions
A function is a block of code which only runs when it is called.
input - pass data (arguments)
process - function body
output - return data from the function
# python wala function ekak define karanna 'def' keyword eken
def sum(num1, num2):
result = num1 + num2
return result
sum(10, 20) # 30
python keyword arguments support
sum kiyana function eka mehema call karanna puluwan
sum( num1= 10, num2=20)
python *args & **kwargs (js wala rest operator eka wage)
*args operator - function eka call karaddi pass karana arguments array ekakata convert karanna puluwan
def sum(*args):
print(args) # [10, 20, 30]
sum(10, 20, 30)
**kwargs operator - function eka call karaddi pass karana keyword arguments dicitonary ekakata convert karanna puluwan
def sum(**kwargs):
print(kwargs) # { 'first': 10, 'second': 20}
sum(first=10, second=20)
scope
සරලව බැලුවොත් scope එක කියන්නේ variable access කරන්න පුළුවන් area එක
Python follow කරන්නේ LEGB RULE එක
local -> enclosed -> global -> builtin
# local
name = "john"
def sayName():
name = "kevin"
print(name)
sayName()
# methandi print wenne kevin kiyana local varibale eka... global varibale eka access karanna onanm "global" keyword eka use karanna wenawa (php wage)
# global
name = "kevin"
def sayName():
global name
print(name)
sayName() # kevin kiyana global variable eka
# enclosed
name = "global name"
def sayName():
name = "outer name"
print(name) # global name eka access karanna onam variable eka issarahin **global** keyword eka use karanna
def innerName():
name = "inner name"
print(name) # outer name eka access karanna onam variable eka issarahin **nonlocal** kiyana keyword eka use karanna ona
innerName()
sayName()
# Built-in Scope
from math import floor
# floor = 'global pi variable'
def outer():
# floor= 'outer floor'
def inner():
# floor = 'inner floor variable'
print(floor)
inner()
outer()
**LEGB RULE**
1) floor eka inner function scope eke define karalada balanawa , thiynawanm eka gannawa
2) nathnm outerscope eke define karalada balanawa, thiynwanm eka gannawa
3) nathnm global eke define karalada balanawa, thiyanwanm eka gannawa
4) nathnm built-in scope eke balanawa, nathnm error ekak throw karanwa "floor is not defined"
Guys meka simple overview එකක් විතරයි. ඔයා තව ගොඩක් දේවල් ඉගෙන ගන්න වෙනවා. මේ basics ටික තමා අපි django වල ගොඩක් වෙලාවට use කරන්නේ.python වල oop part එක මං දැම්මේ නැහැ මට අද time nathi නිසා. කට්ටිය කැමතිනම් කියන්න මං මේක ඉස්සරහට continue කරන්නම්
GraphQL is not a database... it's just api
react , angular , vue mokak igana gaththath first javascript hariyata iganaganna... core eka danne nathnm oyata framework eka iganagannawath ekkama aphu javascriptuth mula idanma igena ganna wenawa...
project eke architecture eka matha depend wenawa api use karana frameworksnm..
reactjs igena ganna eka anith ewata wada lesi... habai javascript (es6) hariyata dannawanm