Meyers käyttämällä tehokkaasti c

Scott Meyers

Tehokas C++ käyttö. 55 varmaa tapaa parantaa ohjelmiesi rakennetta ja koodia

Palaute kolmannesta painoksesta Tehokas C++ käyttö

Scott Meyersin C++:n tehokas käyttö, Third Edition on ohjelmointikokemuksen tislaus – kokemus, joka muuten tulisi sinulle kalliiksi. Tämä kirja on erinomainen lähde, jota suosittelen kaikille C++:aa ammattimaisesti kirjoittaville.

Peter Dulimov, ME, insinööri, NAVSYSCOMin arviointi- ja tutkimusosasto, Australia

Kolmas painos on jäljellä paras kirja, joka kertoo kuinka yhdistää kaikki C++:n osat tehokkaiden ja sisäisesti johdonmukaisten ohjelmien luomiseksi. Jos haluat C++-ohjelmoijaksi, sinun tulee lukea se.

Eric Nagler, konsultti, opettaja ja "Learning C++" -kirjan kirjoittaja

Tämän kirjan ensimmäinen painos oli yksi pienestä (erittäin pienestä) kirjojen määrästä, minkä ansiosta nostin tasoani merkittävästi ammattimainen kehittäjä ohjelmisto. Kuten muutkin tämän sarjan kirjat, se oli käytännöllinen ja helppolukuinen, mutta sisälsi myös paljon tärkeitä neuvoja. C++:n tehokas käyttö, Third Edition, jatkaa tätä perinnettä. C++ on erittäin tehokas ohjelmointikieli. Jos C tarjoaa köyden, joka auttaa sinua kiipeämään vuoren huipulle, niin C++ on kokonainen kauppa, jossa kaikenlaiset ihmiset ovat valmiita auttamaan solmujen solmimisessa kyseiseen köyteen. Tämän kirjan materiaalin hallitseminen parantaa varmasti kykyäsi käyttää C++:aa tehokkaasti ilman, että kuolet stressiin.

Jack W. Reeves, toimitusjohtaja, Bleading Edge Software Technologies

Jokainen uusi kehittäjä, joka liittyy tiimiini, saa välittömästi tehtävän lukea tämä kirja.

Michael Lanzetta, johtava ohjelmistosuunnittelija

Luin C++ Effectivelyn ensimmäisen painoksen noin 9 vuotta sitten, ja siitä tuli heti yksi suosikki C++-kirjoistani. Mielestäni C++ Effectively -ohjelman kolmas painos on edelleen pakollista luettavaa kaikille, jotka haluavat ohjelmoida tehokkaasti C++:ssa. Elämme paremmassa maailmassa, jos C++-ohjelmoijat lukevat tämän kirjan ennen kuin kirjoittavat ensimmäisen ammattikoodirivin.

Danny Rabbani, ohjelmistosuunnittelija

Törmäsin Scott Meyersin Use C++ Effectivelyn ensimmäiseen painokseen, kun olin perusohjelmoija ja yritin kovasti tehdä parhaan mahdollisen työn. Ja se oli pelastus! Olen huomannut, että Meyersin neuvot ovat käytännössä hyödyllisiä ja tehokkaita ja täyttävät 100-prosenttisesti sen, mitä ne lupaavat. Kolmas painos auttaa C++:n käytännön käytössä työskenneltäessä nykyaikaisten vakavien ohjelmistoprojektien parissa, ja se tarjoaa tietoa kielen uusimmista työkaluista ja ominaisuuksista. Olin iloinen huomatessani, että löysin paljon uutta ja mielenkiintoista itselleni kirjan kolmannesta painoksesta, jonka luulin tuntevani erittäin hyvin.

Michael Topic, tekninen ohjelmapäällikkö

Tämä C++-gurun Scott Meyersin arvovaltainen opas on tarkoitettu kaikille, jotka haluavat käyttää C++:aa turvallisesti ja tehokkaasti tai jotka ovat siirtymässä C++:aan mistä tahansa muusta oliokielistä. Tämä kirja sisältää arvokasta tietoa, esitetty selkeällä, ytimekkäällä, viihdyttävällä ja oivaltavalla tyylillä.

Siddhartha Karan Singh, ohjelmistokehittäjä

Kiitokset

Kirja "Using C++ Effectively" on ollut olemassa 15 vuotta, ja aloin oppia C++:aa noin 5 vuotta ennen sen kirjoittamista. Työtä tämän hankkeen parissa on siis jatkunut noin 20 vuotta. Tänä aikana sain ehdotuksia, kommentteja, korjauksia ja joskus hämmästyttäviä havaintoja sadoista (tuhansista?) ihmisistä. Jokainen heistä osallistui C++:n tehokkaan käytön kehittämiseen. Olen kiitollinen heille kaikille.

Olen pitkään lakannut yrittämästä muistaa, missä ja mitä olen itse oppinut, mutta en voi olla mainitsematta yhtä lähdettä, koska käytän sitä jatkuvasti. Nämä ovat Usenet-uutisryhmiä, erityisesti comp.lang.c+ +.moderated ja comp.std.c++. Monet tämän kirjan säännöistä (ehkä useimmat) syntyivät näissä ryhmissä käsiteltyjen teknisten ajatusten seurauksena.

Steve Dewhurst auttoi minua valitsemaan uuden materiaalin, joka sisältyy kirjan kolmanteen painokseen. Säännössä 11 ajatus operaattorin toteuttamisesta kopioimalla ja jakamalla tulee Herb Sutterin muistiinpanoista, erityisesti hänen kirjansa Exceptional C++ (Addison-Wesley, 2000) tehtävästä 13. Ajatus resurssien kaappaamisesta alustuksena (sääntö 13) tulee Bjarne Stroustrupin The C++ -ohjelmointikielestä (Addison-Wesley, 2002). Ajatus säännöstä 17 on otettu Boost shared_ptr -verkkosivuston (http:// boost.org/libs/smart_ptr/shared_ptr.htm#BestPractices) "Parhaat käytännöt" -osiosta ja jalostettu kirjan tehtävän 21 materiaalin perusteella. Herb Sutter, Poikkeuksellinen C++ (Addison-Wesley, 2002). Sääntö 29 on saanut inspiraationsa Herb Sutterin laajasta tutkimisesta tästä aiheesta poikkeuksellisen C++:n tehtävissä 8-19, poikkeuksellisen C++:n tehtävissä 17-23 ja poikkeuksellisen C++:n tehtävissä 11-13" (Addison-Wesley, 2005). David Abrahams auttoi minua ymmärtämään paremmin kolme poikkeusturvallisuuden periaatetta. Ei-virtuaalisen käyttöliittymän (NVI) idiomi säännössä 35 tulee Herb Sutterin "Virtuality" -sarakkeesta C/C++ Users Journalin syyskuun 2001 numerossa. Samassa säännössä mainitut "Template Method"- ja "Strategy" -suunnittelumallit ovat peräisin Erich Gamman, Richard Helmin, Ralph Johnsonin (Ralf Johnson ja John Vlissides) kirjasta "Design Patterns" (Addison-Wesley, 1995). Hendrik Schober ehdotti ideaa NVI-idiomin käyttämisestä säännössä 37. David Smallbergin panos on kohdassa 38 kuvattu joukkototeutus. Kohdassa 39 tehty havainto, että tyhjän perusluokan optimointi on pohjimmiltaan mahdotonta moniperinnöllä, on otettu David Vandevoorden ja Nikolai M. Jossutisin kirjasta (Nickolai M. Josuttis) "Templates C++" (Addison-Wesley, 2003). Säännössä 42 esitetty on ensimmäinen käsitykseni siitä, mitä tarvitaan avainsana typename perustuu C++:n ja C:n usein kysyttyihin kysymyksiin (http://www.comeaucomputing.com/techtalk/#t ypename), jota ylläpitää Greg Comeau, ja Leor Zolman auttoi minua ymmärtämään, että tämä idea oli väärä (minun syyni, ei Gregin ). Säännön 46 aihe sai alkunsa Dan Saksin puheesta "Kuinka saada uusia ystäviä". Ajatus säännön 52 lopussa, että jos ilmoitat yhden version uudesta operaattorista, sinun on ilmoitettava kaikki muut, on esitetty Herb Sutterin Poikkeuksellisen C++:n tehtävässä 22. David Abraham on selventänyt ymmärrystäni Boostin tarkistusprosessista (tiivistetty säännössä 55).

Kaikki edellä mainitut koskevat sitä, missä ja keneltä olen oppinut jotain, riippumatta siitä, kuka julkaisi ensimmäisen kerran materiaalia kyseisestä aiheesta.

Muistiinpanoissani kerrotaan myös, että käytin tietoja Steve Clamagelta, Antoine Truxilta, Timothy Knoxilta ja Mike Kaelblingilta, vaikka valitettavasti se ei täsmennä missä ja miten.

Ensimmäisen painoksen luonnokset arvostelivat Tom Cargill, Glenn Caroll, Tony Davis, Brian Kernigan, Jak Kirman, Doug Lea, Moises Lejter, Eugene Santos Jr. (Eugene Santos, Jr), John Shewchuk, John Stasko, Bjarne Stroustrup, Barbara Tilly ja Nancy L. Urbano. Lisäksi parannusehdotuksia, jotka sisältyivät myöhempiin uusiin julkaisuihin, tekivät Nancy L. Urbano, Chris Treichel, David Corbin, Paul Gibson, Steve Vinoski, Tom Tom Cargill ja Neil Rhodes

Scott Meyers

Tehokas C++ käyttö. 55 varmaa tapaa parantaa ohjelmiesi rakennetta ja koodia

Palaute kolmannesta painoksestaTehokas C++ käyttö

Scott Meyersin kirja C++:n tehokas käyttö, kolmas painos- tämä on ohjelmointikokemuksen keskittyminen - kokemus, jonka ilman sitä saisit korkeaan hintaan. Tämä kirja on erinomainen lähde, jota suosittelen kaikille C++:aa ammattimaisesti kirjoittaville.

Peter Dulimov, ME, insinööri, NAVSYSCOMin arviointi- ja tutkimusosasto, Australia

Kolmas painos on edelleen paras kirja siitä, kuinka kaikki C++:n osat yhdistetään tehokkaiden ja sisäisesti johdonmukaisten ohjelmien luomiseksi. Jos haluat C++-ohjelmoijaksi, sinun tulee lukea se.

Eric Nagler, konsultti, opettaja ja Learning C++:n kirjoittaja

Tämän kirjan ensimmäinen painos oli yksi pienestä (erittäin pienestä) määrästä kirjoja, jotka paransivat merkittävästi tasoani ammattimaisena ohjelmistokehittäjänä. Kuten muutkin tämän sarjan kirjat, se oli käytännöllinen ja helppolukuinen, mutta sisälsi myös paljon tärkeitä neuvoja. "Tehokasta käyttöä C++", kolmas painos, jatkaa tätä perinnettä. C++ on erittäin tehokas ohjelmointikieli. Jos C tarjoaa köyden, joka auttaa sinua kiipeämään vuoren huipulle, C++ on kokonainen kauppa, jossa kaikenlaiset ihmiset ovat valmiita auttamaan solmujen solmimisessa. Tämän kirjan materiaalin hallitseminen parantaa varmasti kykyäsi käyttää C++:aa tehokkaasti ilman, että kuolet stressiin.

Jack W. Reeves, toimitusjohtaja, Bleading Edge Software Technologies

Jokainen uusi kehittäjä, joka liittyy tiimiini, saa välittömästi tehtävän lukea tämä kirja.

Michael Lanzetta, johtava ohjelmistosuunnittelija

Luin C++ Effectivelyn ensimmäisen painoksen noin 9 vuotta sitten, ja siitä tuli heti yksi suosikki C++-kirjoistani. Mielestäni C++ Effectively -ohjelman kolmas painos on edelleen pakollista luettavaa kaikille, jotka haluavat ohjelmoida tehokkaasti C++:ssa. Elämme paremmassa maailmassa, jos C++-ohjelmoijat lukevat tämän kirjan ennen kuin kirjoittavat ensimmäisen ammattikoodirivin.

Danny Rabbani, ohjelmistosuunnittelija

Törmäsin Scott Meyersin Use C++ Effectivelyn ensimmäiseen painokseen, kun olin perusohjelmoija ja yritin kovasti tehdä parhaan mahdollisen työn. Ja se oli pelastus! Olen huomannut, että Meyersin neuvot ovat käytännössä hyödyllisiä ja tehokkaita ja täyttävät 100-prosenttisesti sen, mitä ne lupaavat. Kolmas painos auttaa C++:n käytännön käytössä työskenneltäessä nykyaikaisten vakavien ohjelmistoprojektien parissa, ja se tarjoaa tietoa kielen uusimmista työkaluista ja ominaisuuksista. Olin iloinen huomatessani, että löysin paljon uutta ja mielenkiintoista itselleni kirjan kolmannesta painoksesta, jonka luulin tuntevani erittäin hyvin.

Michael Topic, tekninen ohjelmapäällikkö

Tämä C++-gurun Scott Meyersin arvovaltainen opas on tarkoitettu kaikille, jotka haluavat käyttää C++:aa turvallisesti ja tehokkaasti tai jotka ovat siirtymässä C++:aan mistä tahansa muusta oliokielistä. Tämä kirja sisältää arvokasta tietoa selkeällä, ytimekkäällä, viihdyttävällä ja oivaltavalla tavalla esitettynä.

Siddhartha Karan Singh, ohjelmistokehittäjä

Kiitokset

Kirja "Using C++ Effectively" on ollut olemassa 15 vuotta, ja aloin oppia C++:aa noin 5 vuotta ennen sen kirjoittamista. Työtä tämän hankkeen parissa on siis jatkunut noin 20 vuotta. Tänä aikana sain ehdotuksia, kommentteja, korjauksia ja joskus hämmästyttäviä havaintoja sadoista (tuhansista?) ihmisistä. Jokainen heistä osallistui C++:n tehokkaan käytön kehittämiseen. Olen kiitollinen heille kaikille.

Olen pitkään lakannut yrittämästä muistaa, missä ja mitä olen itse oppinut, mutta en voi olla mainitsematta yhtä lähdettä, koska käytän sitä jatkuvasti. Nämä ovat Usenet-uutisryhmiä, erityisesti comp.lang.c++.moderated ja comp.std.c++. Monet tämän kirjan säännöistä (ehkä useimmat) syntyivät näissä ryhmissä käsiteltyjen teknisten ajatusten seurauksena.

Steve Dewhurst auttoi minua valitsemaan uuden materiaalin, joka sisältyy kirjan kolmanteen painokseen. Säännössä 11 ajatus operaattorin toteuttamisesta kopioimalla ja jakamalla tulee Herb Sutterin muistiinpanoista, erityisesti hänen kirjansa Exceptional C++ (Addison-Wesley, 2000) tehtävästä 13. Ajatus resurssien kaappaamisesta alustuksena (sääntö 13) tulee Bjarne Stroustrupin The C++ -ohjelmointikielestä (Addison-Wesley, 2002). Ajatus säännöstä 17 on otettu Boost shared_ptr -verkkosivuston (http:// boost.org/libs/smart_ptr/shared_ptr.htm#BestPractices) "Parhaat käytännöt" -osiosta ja jalostettu kirjan tehtävän 21 materiaalin perusteella. Herb Sutter, Poikkeuksellinen C++ (Addison-Wesley, 2002). Sääntö 29 on saanut inspiraationsa Herb Sutterin laajasta tutkimisesta tästä aiheesta poikkeuksellisen C++:n tehtävissä 8-19, poikkeuksellisen C++:n tehtävissä 17-23 ja poikkeuksellisen C++:n tehtävissä 11-13" (Addison-Wesley, 2005). David Abrahams auttoi minua ymmärtämään paremmin kolme poikkeusturvallisuuden periaatetta. Ei-virtuaalisen käyttöliittymän (NVI) idiomi säännössä 35 tulee Herb Sutterin "Virtuality" -sarakkeesta C/C++ Users Journalin syyskuun 2001 numerossa. Samassa säännössä mainitut "Template Method"- ja "Strategy" -suunnittelumallit ovat peräisin Erich Gamman, Richard Helmin, Ralph Johnsonin (Ralf Johnson ja John Vlissides) kirjasta "Design Patterns" (Addison-Wesley, 1995). Hendrik Schober ehdotti ideaa NVI-idiomin käyttämisestä säännössä 37. David Smallbergin panos on kohdassa 38 kuvattu joukkototeutus. Kohdassa 39 tehty havainto, että tyhjän perusluokan optimointi on pohjimmiltaan mahdotonta moniperinnöllä, on otettu David Vandevoorden ja Nikolai M. Jossutisin kirjasta (Nickolai M. Josuttis) "Templates C++" (Addison-Wesley, 2003). Kuten kohdassa 42 todettiin, alkuperäinen käsitykseni typename-avainsanan toiminnasta perustuu C++:n ja C:n usein kysyttyihin kysymyksiin (http://www.comeaucomputing.com/techtalk/ #typename), jota Greg Comeau tukee, ja Leor Zolman auttoi minua ymmärtämään, että tämä ajatus on väärä (minun syyni, ei Gregin). Säännön 46 aihe sai alkunsa Dan Saksin puheesta "Kuinka saada uusia ystäviä". Ajatus säännön 52 lopussa, että jos ilmoitat yhden version uudesta operaattorista, sinun on ilmoitettava kaikki muut, on esitetty Herb Sutterin Poikkeuksellisen C++:n tehtävässä 22. David Abraham on selventänyt ymmärrystäni Boostin tarkistusprosessista (tiivistetty säännössä 55).

Kaikki edellä mainitut koskevat sitä, missä ja keneltä olen oppinut jotain, riippumatta siitä, kuka julkaisi ensimmäisen kerran materiaalia kyseisestä aiheesta.

Muistiinpanoissani kerrotaan myös, että käytin tietoja Steve Clamagelta, Antoine Truxilta, Timothy Knoxilta ja Mike Kaelblingilta, vaikka valitettavasti se ei täsmennä missä ja miten.

Ensimmäisen painoksen luonnokset arvostelivat Tom Cargill, Glenn Caroll, Tony Davis, Brian Kernigan, Jak Kirman, Doug Lea, Moises Lejter, Eugene Santos Jr. (Eugene Santos, Jr), John Shewchuk, John Stasko, Bjarne Stroustrup, Barbara Tilly ja Nancy L. Urbano. Lisäksi parannusehdotuksia, jotka sisältyivät myöhempiin uusiin julkaisuihin, tekivät Nancy L. Urbano, Chris Treichel, David Corbin, Paul Gibson, Steve Vinoski, Tom Tom Cargill, Neil Rhodes, David Bern, Russ Williams, Robert Brazile, Doug Morgan. , Uwe Steinmuller, Mark Somer Mark Somer, Doug Moore, David Smallberg, Seith Meltzer, Oleg Steinbuk, David Papurt, Tony Hansen, Peter McCluskey ), Stefan Kuhlins, David Braunegg, Paul Chisholm, Adam Zell, Clovis Tondo, Mike Koelbling, Natraj Kini, Lars Numan, Greg Lutz, Tim Johnson, John Lakos, Roger Scott, Scott Frohman, Alan Rooks, Robert Poor, Eric Nagler), Anton Trucks, Cade Roux, Chandrika Gokul, Randy Mangoba ja Glenn Teitelbaum.

Toisen painoksen luonnokset arvostelivat: Derek Bosch, Tim Johnson, Brian Kernighan, Junichi Kimura, Scott Lewandowski, Laura Michaels, David Smallberg, Clovis Tonado, Chris Van Wyk ja Oleg Zabluda. Myöhemmät versiot hyötyivät Daniel Steinbergin, Arunprasad Marathen, Doug Stappin, Robert Hallin, Cheryl Fergusonin, Gary Bartlettin, Michael Tamm Michael Tammin, Kendall Beamanin, Eric Naglerin, Max Hailperinin, Joe Gottmanin, Richard Weeksin, Valentin Bonnardin, Jun Hein kommenteista. Tim King, Don Mailer, Ted Hill, Marc Harrison, Michael Rubinstein, Marc Rodgers, David Goh, Brenton Brenton Cooper, Andy Thomas-Cramer, Anton Trucks, John Walt, Brian Sharon, Liam Fitzpatric, Bernd Mohr, Harry Yee (Gary Yee ), John O"Hanley, Brady Paterson, Christopher Peterson, Felix Kluzniak, Isi Dunetz, Christopher Creutzi, Ian Cooper, Carl Harris, Marc Stickel, Clay Budin, Panayotis Matsinopulos, David Smallberg, Herb Sutter, Pajo Misljencevic, Giulio Agostinini Giulio Agostinini , Fredrik Blonqvist, Jimmy Snyder, Byrial Jensen, Witold Kuzminski, Kazunobu Kuriyama, Michael Christensen, Jörg Janez Teruel (Jorge Yanez Teruel), Mark Davis (Mark Davis), Marty Rabinowitz (Ares Lagae) ja Alexander Medvedev.

Tämä kirja on käännös amerikkalaisen bestsellerin Effective C++ kolmannesta painoksesta ja on opas C++-kielen osaavaan käyttöön. Se auttaa tekemään ohjelmistasi ymmärrettävämpiä, helpompia ylläpitää ja tehokkaampia. Kuvatun materiaalin lisäksi yleinen strategia suunnittelua, kirja sisältää lukuja malliohjelmointiin ja resurssien hallintaan sekä runsaasti vinkkejä ohjelmien parantamiseen ja työstäsi mielenkiintoisemmaksi ja luovammaksi. Kirja sisältää myös uutta materiaalia poikkeuskäsittelyn periaatteista, suunnittelumalleista ja kirjastotyökaluista. Julkaisu on suunnattu ohjelmoijille, jotka tuntevat C++:n perusteet ja joilla on taidot käyttää sitä käytännössä.

Teos kuuluu genreen Tietotekniikka. Verkkosivuiltamme voit ladata kirjan "C++:n tehokas käyttö. 55 varmaa tapaa parantaa ohjelmien rakennetta ja koodia" fb2-, rtf-, epub-, pdf-, txt-muodossa tai luettavissa verkossa. Kirjan arvosana on 4,6/5. Täällä voit ennen lukemista myös tutustua kirjaan jo tuttujen lukijoiden arvosteluihin ja saada selville heidän mielipiteensä. Kumppanimme verkkokaupassa voit ostaa ja lukea kirjan paperiversiona.

Palaute kolmannesta painoksesta
Tehokas C++ käyttö

Scott Meyersin kirja C++:n tehokas käyttö, kolmas painos- tämä on ohjelmointikokemuksen keskittyminen - kokemus, jonka ilman sitä saisit korkeaan hintaan. Tämä kirja on erinomainen lähde, jota suosittelen kaikille C++:aa ammattimaisesti kirjoittaville.

Peter Dulimov, ME, insinööri, NAVSYSCOMin arviointi- ja tutkimusosasto, Australia

Kolmas painos on edelleen paras kirja siitä, kuinka kaikki C++:n osat yhdistetään tehokkaiden ja sisäisesti johdonmukaisten ohjelmien luomiseksi. Jos haluat C++-ohjelmoijaksi, sinun tulee lukea se.

Eric Nagler, konsultti, opettaja ja Learning C++:n kirjoittaja

Tämän kirjan ensimmäinen painos oli yksi pienestä (erittäin pienestä) määrästä kirjoja, jotka paransivat merkittävästi tasoani ammattimaisena ohjelmistokehittäjänä. Kuten muutkin tämän sarjan kirjat, se oli käytännöllinen ja helppolukuinen, mutta sisälsi myös paljon tärkeitä neuvoja. "Tehokasta käyttöä C++", kolmas painos, jatkaa tätä perinnettä. C++ on erittäin tehokas ohjelmointikieli. Jos C tarjoaa köyden, joka auttaa sinua kiipeämään vuoren huipulle, C++ on kokonainen kauppa, jossa kaikenlaiset ihmiset ovat valmiita auttamaan solmujen solmimisessa. Tämän kirjan materiaalin hallitseminen parantaa varmasti kykyäsi käyttää C++:aa tehokkaasti ilman, että kuolet stressiin.

Jack W. Reeves, toimitusjohtaja, Bleading Edge Software Technologies

Jokainen uusi kehittäjä, joka liittyy tiimiini, saa välittömästi tehtävän lukea tämä kirja.

Michael Lanzetta, johtava ohjelmistosuunnittelija

Luin C++ Effectivelyn ensimmäisen painoksen noin 9 vuotta sitten, ja siitä tuli heti yksi suosikki C++-kirjoistani. Mielestäni C++ Effectively -ohjelman kolmas painos on edelleen pakollista luettavaa kaikille, jotka haluavat ohjelmoida tehokkaasti C++:ssa. Elämme paremmassa maailmassa, jos C++-ohjelmoijat lukevat tämän kirjan ennen kuin kirjoittavat ensimmäisen ammattikoodirivin.

Danny Rabbani, ohjelmistosuunnittelija

Törmäsin Scott Meyersin Use C++ Effectivelyn ensimmäiseen painokseen, kun olin perusohjelmoija ja yritin kovasti tehdä parhaan mahdollisen työn. Ja se oli pelastus! Olen huomannut, että Meyersin neuvot ovat käytännössä hyödyllisiä ja tehokkaita ja täyttävät 100-prosenttisesti sen, mitä ne lupaavat. Kolmas painos auttaa C++:n käytännön käytössä työskenneltäessä nykyaikaisten vakavien ohjelmistoprojektien parissa, ja se tarjoaa tietoa kielen uusimmista työkaluista ja ominaisuuksista. Olin iloinen huomatessani, että löysin paljon uutta ja mielenkiintoista itselleni kirjan kolmannesta painoksesta, jonka luulin tuntevani erittäin hyvin.

Michael Topic, tekninen ohjelmapäällikkö

Tämä C++-gurun Scott Meyersin arvovaltainen opas on tarkoitettu kaikille, jotka haluavat käyttää C++:aa turvallisesti ja tehokkaasti tai jotka ovat siirtymässä C++:aan mistä tahansa muusta oliokielistä. Tämä kirja sisältää arvokasta tietoa selkeällä, ytimekkäällä, viihdyttävällä ja oivaltavalla tavalla esitettynä.

Siddhartha Karan Singh, ohjelmistokehittäjä

Kiitokset

Kirja "Using C++ Effectively" on ollut olemassa 15 vuotta, ja aloin oppia C++:aa noin 5 vuotta ennen sen kirjoittamista. Työtä tämän hankkeen parissa on siis jatkunut noin 20 vuotta. Tänä aikana sain ehdotuksia, kommentteja, korjauksia ja joskus hämmästyttäviä havaintoja sadoista (tuhansista?) ihmisistä. Jokainen heistä osallistui C++:n tehokkaan käytön kehittämiseen. Olen kiitollinen heille kaikille.

Olen pitkään lakannut yrittämästä muistaa, missä ja mitä olen itse oppinut, mutta en voi olla mainitsematta yhtä lähdettä, koska käytän sitä jatkuvasti. Nämä ovat Usenet-uutisryhmiä, erityisesti comp.lang.c++.moderated ja comp.std.c++. Monet tämän kirjan säännöistä (ehkä useimmat) syntyivät näissä ryhmissä käsiteltyjen teknisten ajatusten seurauksena.

Steve Dewhurst auttoi minua valitsemaan uuden materiaalin, joka sisältyy kirjan kolmanteen painokseen. Säännössä 11 ajatus operaattorin toteuttamisesta kopioimalla ja jakamalla tulee Herb Sutterin muistiinpanoista, erityisesti hänen kirjansa Exceptional C++ (Addison-Wesley, 2000) tehtävästä 13. Ajatus resurssien kaappaamisesta alustuksena (sääntö 13) tulee Bjarne Stroustrupin The C++ -ohjelmointikielestä (Addison-Wesley, 2002). Ajatus säännöstä 17 on otettu Boost shared_ptr -verkkosivuston (http:// boost.org/libs/smart_ptr/shared_ptr.htm#BestPractices) "Parhaat käytännöt" -osiosta ja jalostettu kirjan tehtävän 21 materiaalin perusteella. Herb Sutter, Poikkeuksellinen C++ (Addison-Wesley, 2002). Sääntö 29 on saanut inspiraationsa Herb Sutterin laajasta tutkimisesta tästä aiheesta poikkeuksellisen C++:n tehtävissä 8-19, poikkeuksellisen C++:n tehtävissä 17-23 ja poikkeuksellisen C++:n tehtävissä 11-13" (Addison-Wesley, 2005). David Abrahams auttoi minua ymmärtämään paremmin kolme poikkeusturvallisuuden periaatetta. Ei-virtuaalisen käyttöliittymän (NVI) idiomi säännössä 35 tulee Herb Sutterin "Virtuality" -sarakkeesta C/C++ Users Journalin syyskuun 2001 numerossa. Samassa säännössä mainitut "Template Method"- ja "Strategy" -suunnittelumallit ovat peräisin Erich Gamman, Richard Helmin, Ralph Johnsonin (Ralf Johnson ja John Vlissides) kirjasta "Design Patterns" (Addison-Wesley, 1995). Hendrik Schober ehdotti ideaa NVI-idiomin käyttämisestä säännössä 37. David Smallbergin panos on kohdassa 38 kuvattu joukkototeutus. Kohdassa 39 tehty havainto, että tyhjän perusluokan optimointi on pohjimmiltaan mahdotonta moniperinnöllä, on otettu David Vandevoorden ja Nikolai M. Jossutisin kirjasta (Nickolai M. Josuttis) "Templates C++" (Addison-Wesley, 2003). Kuten kohdassa 42 todettiin, alkuperäinen käsitykseni tyyppinimiavainsanan toiminnasta perustuu C++:n ja C:n usein kysyttyihin kysymyksiin ( http://www.comeaucomputing.com/techtalk/#typename), jota Greg Comeau tukee, ja Leor Zolman auttoi minua ymmärtämään, että tämä ajatus on väärä (minun syyni, ei Gregin). Säännön 46 aihe sai alkunsa Dan Saksin puheesta "Kuinka saada uusia ystäviä". Ajatus säännön 52 lopussa, että jos ilmoitat yhden version uudesta operaattorista, sinun on ilmoitettava kaikki muut, on esitetty Herb Sutterin Poikkeuksellisen C++:n tehtävässä 22. David Abraham on selventänyt ymmärrystäni Boostin tarkistusprosessista (tiivistetty säännössä 55).

Kaikki edellä mainitut koskevat sitä, missä ja keneltä olen oppinut jotain, riippumatta siitä, kuka julkaisi ensimmäisen kerran materiaalia kyseisestä aiheesta.

Muistiinpanoissani kerrotaan myös, että käytin tietoja Steve Clamagelta, Antoine Truxilta, Timothy Knoxilta ja Mike Kaelblingilta, vaikka valitettavasti se ei täsmennä missä ja miten.

Ensimmäisen painoksen luonnokset arvostelivat Tom Cargill, Glenn Caroll, Tony Davis, Brian Kernigan, Jak Kirman, Doug Lea, Moises Lejter, Eugene Santos Jr. (Eugene Santos, Jr), John Shewchuk, John Stasko, Bjarne Stroustrup, Barbara Tilly ja Nancy L. Urbano. Lisäksi parannusehdotuksia, jotka sisältyivät myöhempiin uusiin julkaisuihin, tekivät Nancy L. Urbano, Chris Treichel, David Corbin, Paul Gibson, Steve Vinoski, Tom Tom Cargill, Neil Rhodes, David Bern, Russ Williams, Robert Brazile, Doug Morgan. , Uwe Steinmuller, Mark Somer Mark Somer, Doug Moore, David Smallberg, Seith Meltzer, Oleg Steinbuk, David Papurt, Tony Hansen, Peter McCluskey ), Stefan Kuhlins, David Braunegg, Paul Chisholm, Adam Zell, Clovis Tondo, Mike Koelbling, Natraj Kini, Lars Numan, Greg Lutz, Tim Johnson, John Lakos, Roger Scott, Scott Frohman, Alan Rooks, Robert Poor, Eric Nagler), Anton Trucks, Cade Roux, Chandrika Gokul, Randy Mangoba ja Glenn Teitelbaum.

Toisen painoksen luonnokset arvostelivat: Derek Bosch, Tim Johnson, Brian Kernighan, Junichi Kimura, Scott Lewandowski, Laura Michaels, David Smallberg, Clovis Tonado, Chris Van Wyk ja Oleg Zabluda. Myöhemmät versiot hyötyivät Daniel Steinbergin, Arunprasad Marathen, Doug Stappin, Robert Hallin, Cheryl Fergusonin, Gary Bartlettin, Michael Tamm Michael Tammin, Kendall Beamanin, Eric Naglerin, Max Hailperinin, Joe Gottmanin, Richard Weeksin, Valentin Bonnardin, Jun Hein kommenteista. Tim King, Don Mailer, Ted Hill, Marc Harrison, Michael Rubinstein, Marc Rodgers, David Goh, Brenton Brenton Cooper, Andy Thomas-Cramer, Anton Trucks, John Walt, Brian Sharon, Liam Fitzpatric, Bernd Mohr, Harry Yee (Gary Yee ), John O"Hanley, Brady Paterson, Christopher Peterson, Felix Kluzniak, Isi Dunetz, Christopher Creutzi, Ian Cooper, Carl Harris, Marc Stickel, Clay Budin, Panayotis Matsinopulos, David Smallberg, Herb Sutter, Pajo Misljencevic, Giulio Agostinini Giulio Agostinini , Fredrik Blonqvist, Jimmy Snyder, Byrial Jensen, Witold Kuzminski, Kazunobu Kuriyama, Michael Christensen, Jörg Janez Teruel (Jorge Yanez Teruel), Mark Davis (Mark Davis), Marty Rabinowitz (Ares Lagae) ja Alexander Medvedev.

Tämän julkaisun varhaiset osittaiset luonnokset ovat tarkastelleet: Brian Kernighan, Angelique Langer, Jesse Lachley, Roger P. Pedersen, Chris Van Wyk, Nicholas Stroustrup ja Hendrik Schober. Näytä koko teksti luonnostelu: Leor Zolman, Mike Tsao, Eric Nagler, Gene Gutnik, David Abrahams, Gerhard Kreuser, Drosos Kouronis, Brian Kernighan, Andrew Krims, Balog Pal, Emily Jagdhar, Evgeniy Kalenkovich, Mike Rose, Enrico Carrara, Benjamin Burke, Jack , Steve Schirippa, Martin Fallenstedt, Timothy Knox, Yun Bai, Michael Lanzetta, Philip Janert, Judo Bartolucci, Michael Topic, Jeff Scherpeltz, Chris Naurot, Nishant Mittal, Jeff Sommers, Hal Moroff, Vincent Manis, Brandon Chang, Greg Lee, Jim Meehan, Alan Geller, Siddhartha Singh, Sam Lee, Sasan Dashtinejad, Alex Martin, Steve Kaye, Thomas Fruchterman, Corey Hicks, David Smallberg, Gunavardan Kakulapathi, Danny Rabbani, Jake Cohen, Hendrik Schuber, Paco Viciana, G. Kennedy, Jefflenn Kennedy, Oldham, Nicholas Stroustrup, Matthew Wilson, Andrei Alexandrescu, Tim Johnson, Leon Matthews, Peter Dulimov ja Kevlin Henney. Herb Sutter ja Attila F. Feher tarkastelivat myös joidenkin yksittäisten kappaleiden luonnokset.

Raa'an (ja mahdollisesti keskeneräisen) käsikirjoituksen tarkistaminen on kovaa työtä, ja tiukat määräajat tekevät siitä vielä vaikeampaa. Olen kiitollinen kaikille, jotka ilmaisivat halunsa auttaa minua tässä.

Käsikirjoituksen tarkistaminen on sitäkin vaikeampaa, jos sinulla ei ole aavistustakaan materiaalista, mutta sitä ei kannata jättää väliin ei mitään epätarkkuuksia, jotka saattavat hiipiä tekstiin. On hämmästyttävää, että on ihmisiä, jotka suostuvat muokkaamaan tekstejä. Krista Meadowbrook muokkasi tätä kirjaa ja pystyi havaitsemaan monia virheitä, jotka kaikki muut jäivät huomaamatta.

Leor Zolman tarkisti kaikki koodiesimerkit eri kääntäjillä käsikirjoituksen tarkistuksen aikana ja teki sen sitten uudelleen, kun tein muutoksia. Jos virheitä jää, olen niistä vastuussa, en Leor.

Karl Wiegers ja erityisesti Tim Johnson esittivät lyhyen mutta hyödyllisen kansitekstin.

John Waite, tämän kirjan kahden ensimmäisen painoksen toimittaja, suostui epäviisaasti palvelemaan uudelleen tässä ominaisuudessa. Hänen avustajansa Denise Michelsen vastasi aina miellyttävällä hymyllä toistuviin ja ärsyttäviin huomautuksiini (ainakin minä luulen niin, vaikka en ole koskaan tavannut häntä henkilökohtaisesti). Julia Nahil "vei lyhyen pillin" ja hänen täytyi olla vastuussa tämän kirjan tuotannosta. Kuusi viikkoa hän istui läpi yön pysyäkseen aikataulussa menettämättä malttiaan. John Fuller (hänen pomonsa) ja Marty Rabinovich (hänen pomonsa) olivat myös suoraan mukana tuotantoprosessissa. Vanessa Mooren virallisiin tehtäviin kuului kirjan asettelu FrameMakerissa ja tekstin luominen PDF-muodossa, mutta hän teki vapaaehtoisesti lisäyksiä liitteeseen B ja muotoili sen tulostettaviksi sisäkanteen. Solveig Hugland auttoi indeksin kokoamisessa. Kannen suunnittelusta vastasivat Sandra Schroeder ja Chuti Prasertsit. Chutin täytyi tehdä kansi uudestaan ​​joka kerta, kun sanoin: "Miten jos laittaisin tämän kuvan, mutta erivärisellä raidalla?" Chanda Leary-Couti oli täysin uupunut kirjan markkinoinnista.

Useiden kuukausien ajan, kun työskentelin käsikirjoituksen parissa, tv-sarja Buffy the Vampire Slayer auttoi minua vähentämään stressiä päivän päätteeksi. Kesti paljon vaivaa karkottaa Buffyn puhe tämän kirjan sivuilta.

Katie Reed opetti minulle ohjelmoinnin vuonna 1971, ja olen iloinen, että pysymme ystävinä tähän päivään asti. Donald French palkkasi minut ja Moses Lezhterin kehittämään koulutusmateriaaleja C++:ssa vuonna 1989 (mikä sai minut Todella oppia C++), ja vuonna 1991 hän palkkasi minut esittämään ne Stratus-tietokoneella. Sitten oppilaat rohkaisivat minua kirjoittamaan kirjan, josta myöhemmin tuli ensimmäinen painos. Don esitteli minut myös John Whitelle, joka suostui julkaisemaan sen.

Vaimoni Nancy L. Urbano rohkaisee edelleen kirjoittamaani, jopa seitsemän julkaistun kirjan, CD-muokkauksen ja väitöskirjan jälkeen. Hänellä on uskomaton kärsivällisyys. Ilman häntä en olisi koskaan voinut tehdä sitä mitä tein.

Alusta loppuun koiramme Persephone oli epäitsekäs kumppanini. Valitettavasti hän osallistui useimpiin projekteihin ollessaan jo hautausuurnissa. Kaipaamme häntä kovasti.