Jump to content
php.lv forumi

Stupidity knows no bounds


php newbie

Recommended Posts

1TBS stils arī ir K&R variācija, bet ne velti dievi, kuri raksta Linux un Unix kerneli, izmanto šo.

if (...) {
  ...
} else {
  ...
}

Bet šijā gadījumā problēma nav stilā, jo, ja nevar ieraudzīt uzreiz tādu kļūdu, tad neieraudzīs arī šādu:

if (...);{
  ...
}

Vairāk jautājums, kāpēc vispār javaskriptā vispār lietot semikolus? Es personīgi sen jau rakstu javascriptu ES6 standartā, kur semikoli nav jālieto.

Link to comment
Share on other sites

  • Replies 46
  • Created
  • Last Reply

Top Posters In This Topic

Vairāk jautājums, kāpēc vispār javaskriptā vispār lietot semikolus? Es personīgi sen jau rakstu javascriptu ES6 standartā, kur semikoli nav jālieto.

 

Tāpēc, ka parseris pats saliek iztrūkstošos semikolus, bet ne vienmēr tā, kā to vēlējās programmētājs. Piemēram, šeit bez semikola tiek izdots kļūdas paziņojums:

console.log('viens')
(function(){console.log('divi')})()

Arī ES6 gadījumā: http://www.es6fiddle.net/ibch1wy9/

Link to comment
Share on other sites

Vairāk jautājums, kāpēc vispār javaskriptā vispār lietot semikolus? Es personīgi sen jau rakstu javascriptu ES6 standartā, kur semikoli nav jālieto.

 

Neizplati nepareizu informāciju - ES6 paredz gan "reduced", gan "traditional" stilu - t.i. lietot vai nelietot semikolu vēl joprojām ir katra paša brīva izvēle un ES6 lietot vai nelietot neuzspiež.

 

Lai neuzsāktu kārtējo hurr durr mūžīgo argumentu - 

  • Semikolu lietošana vēl joprojām ir de-facto CS standarts absolūtā nospiedošā pārsvarā projektu, kā publisku tā slēgtu;
  • Taču, ja tik tiešām ir tāda vēlme, droši nelieto - neviens pa muti nesitīs. Varbūt. 
  • Konsistence.
  • this:

 

 

Most of the comments in the semicolons exchange make me sad. In the proposed promises grammar and you'll see something surprising about ASI and infix operators: we can add new infix operators in the future. The moral of this story: ASI is (formally speaking) a syntactic error correction procedure. If you start to code as if it were a universal significant-newline rule, you will get into trouble.

Link to comment
Share on other sites

Allman all the way.
Par semikoliem runājot - atceros, ka bootstrap JS devs programmē maksimāli bez semikoliem. Lasot kodu un kommitus, var rūgti pasmieties, kādās galējībās cilvēks neiet, lai tik nebūtu jāraksta semikols. Kārtējais hipsterisms, imho, jēgas taupīt uz tā nav, ir daudzas labākas lietas, ar kurām var uzlabot koda lasāmību.

P.S. Tas, ka Linux kernelis ir rakstīts kaut kādā vienā stilā, nozīmē tikai to, ka viņi dod priekšroku tam stilam, neko vairāk. Varbūt viņiem liekas, ka tā ir ērtāk/labāk, bet tikpat labi viņi vienkārši seko legacy koda stilam.

Edited by jurchiks
Link to comment
Share on other sites

Šito pederastijas murgu jau sen vajadzēja aizliegt, bet tā praktizētājus - nošaut.

 

Uzmanīgi, tu ej pret Dieviem.

Linux, Unix kernelis ir rakstīts 1TBS, praktiski visa JAVA un tās galvenie API ir raktīti 1TBS, pat PHP ir raktīts 1TBS stilā

Tie, kas radīja C valodu rakstīja tādā stilā. Bet visas figūriekavu valodu sintakses evolucionējušas no C.

 

Savukārt, ja atgriežamies pie Javascripta, tad tas ir evolucionējis no JAVAS, kura no C++, kurš no C.

Un Javascriptā ne 1TBS stils var radīt reālas kļūdas, piemēram, Allman stilā atgriežot objektu:

return
{
  a:1,
  b:2
}
Link to comment
Share on other sites

P.S. Tas, ka Linux kernelis ir rakstīts kaut kādā vienā stilā, nozīmē tikai to, ka viņi dod priekšroku tam stilam, neko vairāk. Varbūt viņiem liekas, ka tā ir ērtāk/labāk, bet tikpat labi viņi vienkārši seko legacy koda stilam.

Tā vis gluži nav. Kā jau piebildu, stila lietderība atklājas praktiskās situācijas. Šis ir tikai viens no maziem sīkumiem. Līdzīgi ir ar citiem stila noteikumiem. Labi ieturēts stils ļauj vērīgai acij ātri pamanīt kļūdas arī bez sintaktiskās krāsošanas un IDE palīgrīkiem.

 

Vēl ir vēlams pievērst uzmanību tam, vai koda autors ir vizuālis, audiālis vai kinestēts. Ir grūti prasīt sakarīgi noformētu kodu no pēdējiem diviem.

Link to comment
Share on other sites

Dzirdēt un izmantot ir 2 dažādas lietas. Gribētu redzēt kā tajā hipsteru pierakstā tu javascriptā rakstītu anonīmas funkcijas, nestētus json objektus, utml.

 

Šitā?

(function(obj)
{
  if (obj.a == 1)
  {
    doSomething(obj.b)
  }
  else
  {
    doSomething2()
  }
}
)
(
{
  "a":1,
  "b":
  {
    "c":2,
    "d":3
  }
}
)

Vomit-boy01-vomit-puke-sick-smiley-emoti

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...