Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
for ($ii=0;$ii<10;$ii++) { /* nejaka cinnost */ }Prochazeni pole
while ($cc=each($nejake_pole)) { /* nejaka cinnost s $cc["key"] a/nebo $cc["value"] */ }Vysledky a vybery z databaze
$q="nejaka query"; if ($ares=mysql_query($q)) while ($arow=mysql_fetch_assoc($ares)) { /* nejaka cinnost s polem $arow */ }Zazita sablona pro funkce
function DruhFunkce_NazevFunkce(...) { $ret=false; /* pokud jsou parametry OK, pak cinnost jejimz vysledkem je prepsani $ret; */ return $ret; }Jak je to u vas? Mate nejake takove zazite zvyky? :)
Tiskni
Sdílej:
$sql_chocolates = "SELECT cacao, nameOfChocolate, isDia FROM chocolates WHERE cacao>70"; $data_chocolates = mysql_query($sql_chocolates); if (mysql_num_rows($data_chocolates)) { while ($chocolates = mysql_fetch_array($data_chocolates)) { echo "Name of chocolate is ".$chocolates['nameOfChocolate']." and contains ".$chocolates['cacao']." % of cacao. And it is ".getNotIfNot($chocolates['isDia'])." good for diabetics."; } };) ;) Je to trošku vykonstruovaný příklad, tak se omlouvám za funci getNotIfNot, ale ... řekněme, že vrací string "not", pokud je parametrem false ;)
Nechtěl bych teda po vás ten kód číst.
proto nevim, proc bych na ne mel menit nazorNo snad protože jsem to řekl já, ne?
Moje_Funkce() MojeFunkce() mojeFunkce()ale vzdy a v kteremkoli jazyce (uz jen C, BASH, ojedinele PHP) pouzivam zapis
moje_funkce()a nevidim jedinou vyhodu u tech prvnich trech.
kdo odsazuje mezerami, je hovado...
Já si zase nemyslím nic lichotivého o člověku, pro něhož je to, že někdo preferuje jiný coding style než on, důvodem k nadávkám…
kdo odsazuje mezerami, je hovado...Odsazuj si čím chceš. Já třeba taky odsazuji tabulátorem. Akorát, že místo \t se vloží mezery
U forcyklů: i,j,k,l (jiný zvyk to komplikuje ostatných pro čtení), ii je fakt nepřehledné a jednoduše se přehlídne.
U foreach cyků: $result as $key => $value
U mysql dotazů $query, $result, $row
Zkracování vede jen ke zmenšení přehlednosti, sice se argumentuje leností, ale když umíte psát všemi deseti tak ta expresivita názvu opravdu převáží.
E.g. nerad bych s vámi na nějakých kódech. Do
Zkracování vede jen ke zmenšení přehlednosti, sice se argumentuje leností, ale když umíte psát všemi deseti tak ta expresivita názvu opravdu převáží.
To se nedá takhle generalizovat. Když půjdu do extrému, opravdu si nemyslím, že označení řídící proměnné cyklu outermost_cycle_counter
místo i
nějak přispěje přehlednosti programu. A i jinak jsou pro mne příliš dlouhá jména proměnných (víc než nějakých 10 znaků) většinou spíš otravná, a to i když je nemusím psát, ale jen číst. Navíc to zvyšuje riziko nutnosti zalomit řádek a tím zdroják dále znepřehlednit.
opravdu si nemyslím, že označení řídící proměnné cykluA co teprv, když člověk zjistí, že to outermost není outermost, ale potřebuju přidat ještě jeden vnější cyklus, nebo naopak zjistím, že vnější cyklus nepotřebuju atd.outermost_cycle_counter
místoi
nějak
$name
a $salary
. Pri obyčajnom for-cykle samozrejme premenné i, j, k, l.
Znovupoužívanie generických konštrukcií sa častokrát nevyplatí - či už môže dôjsť k chybe pri recyklovaní premenných, zlému skopírovaniu pri copy&paste (napríklad iterujem od 1 po n, kde by som mal od 0 po n-1) alebo rôznych iných.
Samozrejme netreba šetriť na názvoch funkcií/metód a skutočne popísať čo robia! Nie je nič horšie ako keď sa pozeráte na signatúru int doMagic(bool x, int bbz, int* pols)
. Z tohto zápisu nie je vôbec jasné, čo by to malo robiť.
Mojím pravidlom je snaha písať všetky názvy premenných, metód, tried, atď. anglicky. Tak ako ja neviem čo znamená premenná $koleTapja
, tak niekto nemusí vedieť, čo robí funkcia upecHovno(bool sAlobalom)
.
boolean hodnotaPodleKtereSeRozhoduji = …; Trida o = …; … if (hodnotaPodleKtereSeRozhoduji) { o.setAbcdTrue(); } else { o.setAbcdFalse(); }místo:
boolean hodnotaPodleKtereSeRozhoduji = …; Trida o = …; … o.setAbcd(hodnotaPodleKtereSeRozhoduji);?
V onech 97% kodu programu je totiz vykon uplne irelevantni (resp. je jedno, jestli zabere 10 nebo 1000 instrukci).Jo, zvláště když takový program 90% svého času nedělá nic jiného než jen furt něco volá (zrovna přiřazování asi bude dost frekventovaná akce a to vůbec nehledím na možnost, že může být v cyklu). A navíc se to musí fakt luxusně debugovat. V jakém duševní stavu musí člověk být aby implementoval přiřazování do proměnné voláním, to fakt nechápu.
Nehlede na to, ze kvuli setteru se stackframe velmi pravdepodobne budovat nebudePokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.
Pokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.
Java HotSpot strašně rád inlinuje. Takže to ve výsledku není ani call, ani jmp ale prosté přiřazení. Ve strojáku ze všech těch geterů a seterů nakonec zůstane jen práce s registrem (případně adresou).
c = a + b
c = add(a,b). V mém případě to tipuju buď na nějakou mentální degenerativní poruchu nebo malou hladinu alkoholu v krvi.
Já zas především nechápu na co kvůli jednomu blbému přiřazení (jedna instrukce) budovat celý další stackframe.1) "Celý další stackframe" není nic tak hroznýho.
this
.
setAbcdTrue()
bude volat setAbcd(true)
.
A reknes proc? Proc by mela metoda (napr.) setVisible() okno zobrazovat i schovavat?Nic takového jsem neřekl.
setVisibleTrue()
a setVisibleFalse()
.
Protoze metoda by mela delat jednu vecAle vždyť to ta metoda dělá jednu věc - nastavuje viditelnost okna. To, že vevnitř to řeší tak a tak je navenek jedno.
Myslim, ze je docela zrejme, ze implementace skryti a zobrazeni okna budou pravdepodobne dost odlisne ...Proč by měly být (výrazně) odlišný? Windows manager taky pravděpodobně udržuje u každého okna všelijaký informace včetně
boolean visible
.
Enum
– stav, na který se má změnit.
function chytraFunkce($prepinac) { if($prepinac == true) { ... ... spousta kodu ... ... } else { ... ... spousta kodu ... ... } }
V takovém případě více méně* souhlas, jenže ono to často vypadá takhle:
function chytraFunkce($prepinac) { ... ... spousta kodu ... ... if($prepinac == true) { …trochu kódu… } else { …trochu kódu… } ... ... spousta kodu ... ... }
nebo tam dokonce ani ten vnitřní if (…)
není a jednoduše předáváš ten $přepínač
někam dál.
Pokud je v ifu jenom část metody, nešlo by upravit životní cyklus objektu, vyčlenit společné části a rozdílnost fáze v podmínce řešit polymorfismem?
setVisible()
může nastavit vnitřní proměnnou a zavolat update()
a tam (ne)musí být if potřeba podle vlastností backendu. Zkrátka ten if by měl (imho) být co možná nejníž.
java.awt.Component.setVisible(boolean)
než show()
a hide()
.
arrayItem1
, arrayItem2
a arrayItem3
, ... :)
iteration1
, iteration2
... iteration44563
. Bude to pak přehlednější a lépe se to bude refaktorovat. :))
new ImplementationA()
a nahrazovat za new ImplementationB()
? A co mockování (např připojení k databázi) v testech? Nebylo by lepší vytvářet instance na jednom místě? Třeba v IoC kontejneru nebo ServiceLocatoru?"int i,j,k;
.
if
, while
a Auto extends DopravniProstredek
dočteš hnedka z kraje. Názory, které tu prezentuju jsou (bohužel) spíš taková avantgarda, o výuce programování ve školách radši nemluvě.
Právě tak jsem se to snažil podat - je užitečné mít reflex "když vidím public atribut, tak to se mnou škubne a zamyslim se" reflex "když vidím public atribut, změním ho na private a dopíšu setter/getter" je k ničemu.
Upřímně řečeno lepší by to bylo naopak. Atributy psát vždy jako private a k nim (třeba automatické, triviální) get/set metody a v případě opodstatněného použití jej předělat jako public.
Upřímně řečeno lepší by to bylo naopak. Atributy psát vždy jako private a k nim (třeba automatické, triviální) get/set metody a v případě opodstatněného použití jej předělat jako public.Vůbec nejlepší by bylo, kdyby Gosling tolik nečetl manuál k C++ a Javu udělal více podle Smalltalku. Tam jsou všechny členské proměnné v Java terminologii
protected
a metody public
, což je taková úroveň oprávnění, kterou obvykle programátor potřebuje.
Verim, ze i na takove GOTO se najde use case, ve kterem je vhodne a tedy se neda obecne oznacit a priori za spatne.Dobrým příkladem jsou linuxové moduly, kde se používají skoky pro zjednodušení kódu při inicializaci tak, aby se v okamžiku, kdy něco nevyjde, nemusleo složitě řešit to, co už bylo inicializováno/naalokováno a co ještě ne. Ne že by to nešlo řešit bez skokú, ale buď by to znamenalo držet si stav (což zabíra zbytečně paměť) nebo použít vnoření, která se ale mohou při větším množství stát velmi, velmi nepřelednými a člověk pak při čtení kódu vypadá jak ten zlý pes ze Simpsonů
int moje_promenna_kterou_jsem_si_definoval_po_prednasce_z_programovani_ktera_na_me_udelala_velky_dojem_1;
int <dtto>_2;
while ($cc=each($nejake_pole))
{ /* nejaka cinnost s $cc["key"] a/nebo $cc["value"] */ }
nějakou zvláštní výhodu oproti této:
foreach ($cc as $key => $value)
{ /* nejaka cinnost s $key a/nebo $value */ }
(používám právě tuto druhou cestu a rád bych věděl, jestli ta první není v něčem lepší)? $cc
má být u druhé konstrukce $nejake_pole
, ale to snad každý pochopí.
$r__db_connection = mysql_connect($s__host, $s__user, $s__pass); mysql_select_db($s__database, $r__db_connection); $r__products = mysql_query("SELECT ...", $r__db_connection); for ($i__row = 0; $i__row < mysql_num_rows($r__products); $i__row++) { $a__product = mysql_fetch_array($r__products); $s__product_name = $a__product['product_name']; } // mysql_close, unset a atd... exit(0);
Naviedol ma na to pan Herout pomocou jeho knihy Ucebnice jazyka C (ked som sa pred 6timi rokmi tento jazyk ucil). …zvysuje tento navyk u mna prehladnost a efektivitu. …dokazem sa vyvarovat niektorym chybam.
Jsem jediný u koho tyto bojové výkřiky ve stylu
vyvolávají jemný úsměv na tváři a jediný co si myslí, že se tu zas řeší leda tak kraviny? To je snad úplně jedno jak to píšeš, ne? Pokud nejsi pako a nebo fakt v nějaké ovlivnění smyslů, tak snad dovedeš rozumně pojmenovat nějaké proměnné a pokud není pako (a nebo též nějak ovlivněn) ten co to po tobě bude číst, tak to snad bude i schopen pochopit. Jestli je to už jazyk interpretovaný nebo překládaný a nebo silně tipovaný nebo slabě tipovaný a nebo rudý nebo růžový.
tipovanýNo dobře. Jdu spát.
Divnou polohu zavorek taky nechapu, a proc neodsazovat u funkce taky ne.Tohle je to poslední, co by se mělo řešit. Běžně se používají různé styly, každému vyhovuje něco jiného.