Abraçant el C++ modern amb seguretat

Autors: Dr. John Lakos, Vittorio Romeo, Dr. Rostislav Khlebnikov i Alisdair Meredith
Editorial: Addison-Wesley
Data: desembre de 2021
Pàgines: 1376
ISBN: 978-0137380350
Imprimeix: 0137380356
Kindle: B09HTFQB92
Públic: desenvolupadors de C++
Valoració: 4
Revisor: Harry Fairhead
Escriure C++ segur: sembla essencial

La idea que hi ha trampes en tots els llenguatges informàtics no és especialment preocupant, però descobrir que podeu tenir un llibre de 1.300 pàgines dedicat a fer-ho bé en C++ és una sorpresa.

Sempre que llegeixo els llibres de Bjarne Stroustrup sobre C++ surto pensant que és un llenguatge intel·ligent i net. Quan em trobo amb algun C++ real, o llegeixo un llibre d’un “assistent de C++”, em retiro al món més senzill de C tan ràpid com sigui possible. Hi ha més maneres de fer gairebé qualsevol cosa en C++ de les que m’importa pensar i ara sembla que moltes d’elles no són segures.

El primer capítol del llibre cita Feynman:

“Si no està d’acord amb l’experimentació, està malament. En aquesta simple afirmació hi ha la clau de la ciència”.

que em va demanar:

“Si un idioma necessita 1300 pàgines per dir-vos com utilitzar-lo de manera segura, probablement no sigui l’idioma que busqueu”.

Però suposo que si us comprometeu a fer un ús complet del C++ modern, probablement haureu de seguir llegint.

El primer xoc és que només hi ha quatre capítols en aquest llibre enorme. No us preocupeu, però, ja que cada capítol està dividit en petites seccions. El capítol 0, bé, sí, hi ha un argument que tots els llibres de programació haurien de començar amb el capítol 0, exposa les idees i els principis darrere del llibre. C++ modern en aquest context significa C++ 11 i C++ 14.

El capítol 1 es titula “Funcions segures”, que és una mica un trencaclosques. Segurament m’haurien d’informar de les coses perilloses que puc fer en lloc de les coses que són segures? Després de tot, la llista segura és oberta i això es demostra en part pel fet que té 140 pàgines. Cada idea s’explica i se’ns explica per què sembla segur.

El capítol 2 es titula “Funcions de seguretat condicional” i amb unes 800 pàgines és la major part del llibre. Aquesta, com és d’esperar, és una llista de coses que són segures sempre que les tracteu bé. Òbviament, aquest no és un llibre que s’hagi de llegir de principi a fi, fins i tot si ho feu, què en recordeu? Així que vaig fer el que faran la majoria dels lectors i vaig submergir-me en les seccions que m’interessaven. Vaig mirar la secció sobre lambdas i em vaig enfrontar amb una explicació molt llarga i detallada de què són les lambdas i alguns exemples d’utilització d’elles; això va tenir més de 30 pàgines. Finalment vaig arribar a una secció anomenada Potencials trampes i això eren unes cinc pàgines que assenyalaven on podria equivocar-me. Com que ja sabia alguna cosa sobre les lambdas, això va ser una gran revisió i al final no em va semblar que el temps s’havia gastat bé, però potser no hi esteu d’acord. La secció estava ben escrita i amb molts exemples, de fet potser molts i massa llargs.

El capítol 3 es titula “Funcions no segures” i té unes 250 pàgines. Per descomptat, aquesta és la carn del llibre si realment esteu intentant evitar coses que no són segures, però només hi ha nou coses que figuren com a insegures incondicionalment. Sembla que no hi ha moltes coses perilloses per a un llibre tan llarg. En aquesta part del llibre llegeixo la secció de final, una cosa que sovint em molesta quan trobo que no puc ampliar una classe del sistema. Vaig llegir unes quantes pàgines sobre què era el final i després sobre els seus casos d’ús, però quan vaig arribar a Potential Pitfalls em vaig adonar que realment no pensava que fossin trampes. Certament, no eren prou dolents perquè em plantegés la prohibició d’utilitzar final, més com un conjunt de “no bo” en lloc de “molt dolent”.

Conclusió

En general, aquest és un llibre ben escrit i els quatre autors òbviament han treballat molt per produir aquest gran volum. Les meves reserves són més sobre la necessitat pràctica d’aquest llibre. Confio en l’anàlisi i l’anàlisi estàtica per assenyalar coses que es podrien fer millor i no estic segur que aquest llibre en particular em permeti escriure un millor codi i, si ho fes, no crec que l’efecte duri gaire.

Si voleu reunir-vos amb un gran llibre d’exemples de C++ i discussió sobre com i els casos d’ús, a més d’algunes advertències sobre què podria sortir malament, aquest podria ser un llibre que us agradaria. Per a mi té un valor dubtós tot i estar ben intencionat.

Per estar al dia amb la nostra cobertura de llibres per a programadors, seguiu @bookwatchiprog a Twitter o subscriu-te al canal RSS de I Programmer’s Books per a la nova incorporació de cada dia a Book Watch i per a noves ressenyes.

Bandera

.

Leave a Comment

Your email address will not be published. Required fields are marked *