I wastalking a littlebitabouthow I kindofwanttoconnectthedotsforanynewcomersandevenformoreadvancedpeopleforthelateronstepswhenitcomestosolvefordevelopment, basicallytakeyoueverywherefromdownloadingthe I D.
Whichisbasically, liketwosecondsofthisvideotocreating a simpleturbineapplicationwithinthat I d e readyfewtestsforthattermapplicationbecausewe'regonnabepushingituptogetup, creatingourowngetrepositoriesandwhatnot, andthengoonaheadandusingcircleseeeyetointegrate.
Somecontinuesintegration.
Andthosetestsaregonnaberunthroughcircle C.
I beforepushesitovertoourmasterbranchontargetofrepositories.
That's why I sayit's forbeginnersandpeoplewhoare a littlebitfurtheralongbecauseyouhavenoexperiencewhenitcomesto C.
I c d.
Workflows.
That's somethingthatyou'regonnarunintoonewayoranotherifyoubeplannedtobecome a professionalsoftwaredeveloper.
So I thinkthatanybodyofanyskilllevel, frombeginnertoMaybeyou'vebeendoingthisfor a while, willtakesomethingawayfromthisvideo.
Atleastthatismyhopeinplans.
Quickdisclaimer.
I'm notsurehowgoodof a teacher I am.
Sometimes I tendtojustglossoversomeimportantfactsbecause I mayassumethatalreadyknowit.
Othertimesthatmayfalldown a rabbitholebecause I don't thinkyouknowanythingaboutit.
Sowe'llseehowthisgoes.
AllofthisisbeingdoneonWindows 10 and I couldmakeanyargument.
WorldiswhyMaybeyouwanttobeusingLennoxforsoftwaredeveloper, but I justwanttobreakdownthebarriertoentrythere.
Andwhilewearegonnabegoingover a littlebitofah, I say a littlebit.
We'regonnabesettingup a C.
I hadcontinuousintegrationworkflowfor a verysimpleterminalapplication.
Circle C.
I does a wholelotmorethanthat.
I justwanttoread a fewnotesthat I tookdownonmyexperienceinCircle C.
I thatforsomeofyouwhoare a littlebitmoreadvancedandwanttodo a littlebitmore, maybehopintothecontinuousdeploymentsideofthingsaswellasthecontinuousintegrationlikewe'llbedoinginthisvideoservice.
See, I havemyownnotes, professionalservice, somethingyou'llseeintopcompanieslikeFacebook, Spotify, KickstarterandGopro.
As a workflowprogresses, cashingdependenciesisanotherbigone.
Itmakesjobsfasterandcircle c i byreusingthedatafromexpensivefetchoperationsfrompreviousjobs, andyoucanuse a Circle C I C allytosplittestsallofthatthat I justmentionedisavailableforfreeontheirperformanceplan.
However, theyofferevenmorelikeresourceclassesscalingconcurrencyandDrLaneCashing.
Ifanything I mentionedoreverything I mentionedwentrightoveryourhead, I wanttobeleadinglinksdowntotheappropriatecircle.
See, I paidforeverything I justlistedsoyoucangoaheadandclickdownthereandjusthavefunfallingdownthatrabbitholebecausethere's a wholelottolearnwhenitcomesto C I.
C d.
Workflowsandthingsthatnature.
And, like I said, professionalsawfordevelopmentenvironmentyou'regoingtobeusingcontinuesintegrationandormostlikely, andcontinuousdeployment.
Soit's definitelysomethingworthlearning.
Ifthatisyourultimategoal.
Myfirstthingsfirsteclipsedotorg's slashdownload.
You'regonnadownloadEclipseforthisparticularprojectbecausewe'regonnabecreating a Javaterminalapplication.
Caesar's cipher.
I'llexplainthatinjust a second, butbasicallyallyoudoiseclipsethatorcslashdownloadsDownloadwhateveritsuggests.
I'm very I reallylovecryptographyandpuzzlesandjustthingsofthatnatureandeffect.
ThatCaesarcipheris a very, verysimplesiteforsomethat I thinkyou'llbeabletojustcatchontoaninnocentifyoudon't alreadyknowwhatitisintheprogramitselfisfairlysimplethat I alreadyknowwhat I haveinmindwhenitcomestothetests.
Allknow, CaesarCipherisanencryptiontechnique, a very, verysimpleencryptiontechniqueatthat.
Whatyoudoisyoutakethealphabet.
Youshifteddown a certainamountofletters, andthatishowyouwriteyourmessage, andwhatwillbecodingupistheabilitytotake a message, throwitintoourcode, andourcodeisgoingtospitouttheencryptedmessageusing a Caesarcipher.
Nownormally, whatyouwoulddothatpotentiallyiscomeuphereandcreatingjob a project.
Butsincewe'regonnabecreating a continuousintegrationworkflow, whatwe'regoingtoneedtodoiscomedowntootherandwe'regoingtobecreating a greaterprojectsunderhere.
You'llseeGreat.
Allyou'llseegreaterproject.
Gonnaclickonthatclicknextrun a name, thisprojectCaesar's cipher.
So, basicallyanotherwaytowritethis, uh, I'lljustwriteitlikethis.
Offsetequalsoffsetmodule, alphabetsize.
Andifyou'rewonderinghowitdidthatjustthere, let's take a stepback.
Right?
Typedinthebeginningofsomething, I'vealreadydeclared a l alphabetsizecontrolorcommandspacealphabetsize.
Okay.
Andso I don't havetotypeitineverysingletime I wanttodothat.
There's a lotofthoseshortcutslikethat.
Butthisrighthereisthesameexactthing.
Isthisrighthere?
Soincaseyouwanttoseeitwhereitmakes a littlebitmoresenseinyourheadandmoretraditionalmanneroflookingatthings, we'regonnatakethatoutAndwhatwe'rewhatwehavegoingoverhere.
Sowehaveoursharing.
Wejustdeclared a characterarray.
Wecalleditcharacter, andwehave a stringmessageandwe'regoingtotakethemessage.
Therethere's gonnabecallingintheparametersarecharacterfrom a characterarrayandtheoffsetwhatthiscodeisdoingrightnowiscallingthismethodrightherebasically.
Sowhenever I callthismethodoffsetbyitoffsetsourmessagetohowwewantitandthenreturnnew.
Ifyounoticethatthisif I tookoutreturntorighthere, it's yellingatusuphereandisbecauseWeneed a returnstatementwiththis.
Soletmeexplainthisfor a 2nd 1 Thisisyellingatusforthesamereasoningthattheoffsetbywasyellingatusbecauseweneedtocreate a methodoutofwhatwehavegoingonrighthere.
Andwe'regonnaadd a littlebitmorelogic, andthenwe'llbewe'llbedone.
SothatistheoffsetChar.
We'llgettothatin a second, butletmetakeyoubacktothefourth.
Sothat's just a regularforLuke.
I'm goingtotakeyouthroughitanyway.
ButjustknowthatHey, it's regularforthem.
Sowedeclared, it's youreye.
We'regonnabeusingthisonlyinthefourloop.
Weequaledittozero, andthenwehavewhile I, whichrightnowequalzero, islessthancharacterlength.
We'regoingtobedoingwhateverisinthefourloop.
Andeverytimewedo a renditionofwhat's inthefourloop, we'readdingoneto I.
Andthenwe'realsorunningthismethodthatwejustcreatehimabouttheirlogicintoin a second, whichthisisourmessage, traverseallthisisusimplementingCaesarcipherintoourcharacterandyourmessage, andwe'rejuststoringitwithinthis, right?
Sonowweneedtodoisouroffsetcharacter.
Sothelogicintothere.
So I mentionedourpreviousmethodwherewe'regonnahaveletterandlettersandwe'regoingtoassumethateverycharacterinourmessageislowercasedrepresenting a lowercase, A and a lowerCaseyornot, Wedon't careabouttheuppercasebecausewehavecontroloverthemessage.
We'regoingtobelookingatthelowerboundswiththisstatementrighthere, too, toaccountfor a leftrotationperspective.
Ifyouhavetheletter E.
Ifyouwanttoshiftitthewholeentirealphabetaround 11 Letter E three, theamountofthreeyoucoulddio e f g h oryoucoulddio e d c B.
Sothat's three.
Butthat's eitherway.
We'reonlyallowingfor a leftrotationifwewantedtodo a rightrotationaswell.
Well, let's justaddthatinthere.
Whynot?
It's basicallythesameexactthingwegotgoingonhere, butwewanttoshiftaroundthelessthanto a greaterthanandit's gonnabegreaterthanthelastcharacterofthealphabet.
Andthatistheletter Z thatwehavedetermineduphere.
Andthenwealsowanttodo C minusalphabetsize, not C plusalphabetsize.
They'rejustchanged a fewthings, andthenweobviouslychangedturnshere.
Toursreturn, see, Andthisis a Caesarcipher.
However, sincewe'redoingeverythingineclipsethewaythatwewanttorunthisinordertomakeitcleaner, wewanttocreate a maindotJavafilewe'regonnabecreating a mainmethodwithinthatmaindotjob, a filethatisbasicallygoingtobeouroperations.
Gonnahoptothe F statementaslongasthecharacter I doesnotequal a spaceandthere's gonnarunline 19 Now, rememberonline 19 wererunningthiscode, andwe'reactuallygonnabestoringitwithincharacter.
I Sothiscoderightherethisisuscallingtheoffsetcharmmethoddownherepassinginourparameters.
Soeverytimewecomethrough a letter, werunallofthiscodereturnedthenewlettertobestoredwithincharacter I Sobasicallyitcomesdowntothe H H isoffsetby 12.
Andnowthatageeagles A T, wereturn t intoourcharacterarrayandthenwegoontoOh, andoh, it's offsetby 12 Thatisnowan A.
Wereturn a andnowthatisbeingstoredinourcharacterarray.
I justloveitandthenwithSonowthatwe'reoutofourciphermethodAndremember, thelastthingwedidinourciphermethodwasreturnourcharacter, whichisnowthis, andwe'regoingtobestoringit.
You'reworkingonthisfeature, andbeforeyoupushitintothemasterbranchforallofproductiontoseeyoupushintoyourfeaturebranchforCircle C.
I tow, runallyourtests, dothecircle C I jobsandmakesurethatyourcoatisgood, butalsoforcodeofusetoensurethatyouarewritingthecodeinthebestpossibleway.
Andifnot, thenyourteamcanhelpyouwrite a littlebitbettercoat.
Anotherreasonisyoucouldhavemultipledifferentbranchesyoucanhavefordevelopment, andthatiswhatyourdevelopmentteamworksonbeforeitgoesupto a Q a branchwhereyouhavepeople, whetherthat's inusersorqueestesterstestingitandthenupintoproductionbranchEnough.