การเขียนโปรแกรม

คำถาม & คำตอบสำหรับโปรแกรมเมอร์มืออาชีพและกระตือรือร้น


1
คู่มือและรายการหนังสือซีแบบเด็ดขาด
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คำถามนี้พยายามรวบรวมรายการหนังสือคุณภาพที่ชุมชนเป็นผู้ดูแลค ภาษาการเขียนโปรแกรมกำหนดเป้าหมายในระดับทักษะต่างๆ C เป็นภาษาการเขียนโปรแกรมที่ซับซ้อนซึ่งยากต่อการรับขณะเดินทางโดยการอ่านบทช่วยสอนออนไลน์ หนังสือที่ครอบคลุมมักเป็นวิธีที่ดีที่สุดในการเรียนรู้ภาษาและการหาหนังสือที่ดีเป็นขั้นตอนแรก สิ่งสำคัญคือต้องหลีกเลี่ยงหนังสือที่เขียนไม่ดีและที่สำคัญกว่านั้นคือหนังสือที่มีข้อผิดพลาดทางเทคนิคร้ายแรง โปรดแนะนำการแก้ไขคำตอบที่ได้รับการยอมรับเพื่อเพิ่มหนังสือที่มีระดับความสามารถโดยประมาณและการย่อ / ขยายสั้น ๆ / คำอธิบายเกี่ยวกับหนังสือแต่ละเล่ม ( โปรดทราบว่าคำถามนั้นถูกล็อคดังนั้นจะไม่มีคำตอบใหม่ใด ๆ ตอบรับหนึ่งคำตอบในรายการ ) อย่าลังเลที่จะเลือกหนังสือคุณภาพหัวข้อหัวบทสรุประดับทักษะและสิ่งอื่นใดที่คุณเห็นว่าผิด หนังสือที่ชุมชน C ถือว่าน่าพอใจจะติดอยู่ในรายชื่อ ส่วนที่เหลือจะถูกลบอย่างสม่ำเสมอ สำหรับหนังสือที่มีบทวิจารณ์โดยสมาคมผู้ใช้ C และ C ++ (ACCU) ควรเพิ่มลิงก์ไปยังบทวิจารณ์เหล่านั้นพร้อมกับหนังสือ ดูสิ่งนี้ด้วย: แหล่งข้อมูลที่เกี่ยวข้องกับ C อื่น ๆ ใน ค แท็กวิกิ รายการที่คล้ายกันสำหรับ C ++: คู่มือและรายการหนังสือ C ++ ขั้นสุดท้าย คำถามนี้ถูกกล่าวถึงในMetaเป็นส่วนหนึ่งของที่ถูกลบคำถามตรวจสอบ 2018 ฉันทามติคือการยกเลิกการลบและบำรุงรักษาอย่างแข็งขัน
400 c 

2
ทำไม `['ดีกว่า` เซตย่อย'
เมื่อฉันต้องการกรอง data.frame เช่นแยกแถวที่ตรงตามเงื่อนไขฉันต้องการใช้subsetฟังก์ชั่น: subset(airquality, Month == 8 & Temp > 90) มากกว่า[ฟังก์ชั่น: airquality[airquality$Month == 8 & airquality$Temp > 90, ] มีสองเหตุผลหลักสำหรับการตั้งค่าของฉัน: ฉันพบว่ารหัสอ่านดีขึ้นจากซ้ายไปขวา แม้แต่คนที่ไม่รู้อะไรเลยเกี่ยวกับอาร์ก็สามารถบอกได้ว่าsubsetข้อความข้างต้นกำลังทำอะไรอยู่ เนื่องจากคอลัมน์สามารถเรียกได้ว่าเป็นตัวแปรในselectนิพจน์ฉันสามารถบันทึกการกดแป้นบางครั้งได้ ในตัวอย่างของฉันข้างต้นผมมีเพียงพิมพ์airqualityครั้งด้วยแต่สามครั้งด้วยsubset[ ดังนั้นฉันจึงมีความสุขใช้กับsubsetทุกที่เพราะสั้นกว่าและอ่านได้ดีขึ้นแม้จะสนับสนุนความงามของมันให้กับนักเขียนโค้ด R ของฉัน แต่เมื่อวานโลกของฉันแตกสลาย ขณะอ่านsubsetเอกสารฉันสังเกตเห็นส่วนนี้: คำเตือน นี่คือฟังก์ชั่นอำนวยความสะดวกสำหรับการใช้งานแบบโต้ตอบ สำหรับการเขียนโปรแกรมจะเป็นการดีกว่าที่จะใช้ฟังก์ชั่นการแบ่งย่อยมาตรฐานเช่น [และโดยเฉพาะอย่างยิ่งการประเมินที่ไม่ได้มาตรฐานของชุดย่อยของอาร์กิวเมนต์สามารถมีผลที่ไม่คาดคิด ใครช่วยอธิบายสิ่งที่ผู้แต่งหมายถึงได้บ้าง ก่อนอื่นพวกเขาหมายถึง " เพื่อใช้แบบโต้ตอบ "? ฉันรู้ว่าเซสชันแบบโต้ตอบคืออะไรเมื่อเทียบกับสคริปต์ที่ทำงานในโหมดแบทช์ แต่ฉันไม่เห็นความแตกต่างที่ควรทำ จากนั้นคุณช่วยอธิบาย " การประเมินผลที่ไม่ได้มาตรฐานของชุดย่อยของข้อโต้แย้ง " และทำไมมันอันตรายหรืออาจเป็นตัวอย่าง?
400 r  filter  subset  r-faq 

7
อย่างไรและ / หรือทำไมการรวมกันใน Git ดีกว่าใน SVN
ฉันเคยได้ยินในไม่กี่ที่ที่หนึ่งในเหตุผลหลักที่ว่าทำไมระบบควบคุมเวอร์ชันที่กระจายส่องแสงนั้นเป็นการผสานที่ดีกว่าเครื่องมือแบบดั้งเดิมอย่าง SVN อันนี้เป็นเพราะความแตกต่างโดยธรรมชาติในการทำงานของทั้งสองระบบหรือการใช้งาน DVCS เฉพาะเช่น Git / Mercurial เพียงแค่มีการรวมอัลกอริทึมที่ฉลาดกว่า SVN หรือไม่

17
สิ่งที่ไม่เปลี่ยนแปลงหมายถึงอะไร?
นี่อาจเป็นคำถามที่โง่ที่สุดที่เคยถาม แต่ฉันคิดว่ามันค่อนข้างสับสนสำหรับมือใหม่จาวา ใครสามารถอธิบายสิ่งที่มีความหมายโดยไม่เปลี่ยนรูป ? ทำไมถึงStringไม่เปลี่ยนรูป อะไรคือข้อดี / ข้อเสียของวัตถุที่ไม่เปลี่ยนรูป? ทำไมวัตถุที่ไม่แน่นอนเช่นStringBuilderที่ต้องการมากกว่าสตริงและข้อรอง? ตัวอย่างที่ดี (ใน Java) จะได้รับการชื่นชมจริงๆ


6
ฉันจะส่งผ่านอาร์กิวเมนต์ unique_ptr ไปยังตัวสร้างหรือฟังก์ชันได้อย่างไร
ฉันใหม่เพื่อย้ายซีแมนทิกส์ใน C ++ 11 และฉันไม่รู้วิธีจัดการunique_ptrพารามิเตอร์ใน Constructor หรือฟังก์ชั่น พิจารณาคลาสนี้อ้างอิง: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); } protected : Base::UPtr next; }; นี่เป็นวิธีที่ฉันควรจะเขียนฟังก์ชั่นการunique_ptrโต้แย้ง? และฉันต้องใช้std::moveในรหัสโทรหรือไม่ Base::UPtr b1; Base::UPtr b2(new Base()); b1->setNext(b2); //should I write b1->setNext(std::move(b2)); instead?

18
ค้นหาแพ็คเกจทั้งหมดที่ติดตั้งด้วย easy_install / pip หรือไม่
มีวิธีในการค้นหาแพ็คเกจ Python PyPI ทั้งหมดที่ติดตั้งกับ easy_install หรือ pip หรือไม่? ฉันหมายความว่าไม่รวมทุกอย่างที่ติดตั้ง / พร้อมเครื่องมือการกระจาย (ในกรณีนี้คือ apt-get บน Debian)
400 python  pip  easy-install  pypi 

14
ปรับขนาดผ้าใบ HTML5 ให้พอดีกับหน้าต่าง
ฉันจะปรับขนาด<canvas>องค์ประกอบHTML5 โดยอัตโนมัติเพื่อให้พอดีกับหน้าได้อย่างไร ตัวอย่างเช่นฉันสามารถเพิ่ม<div>ขนาดได้โดยการตั้งค่าheightและwidthคุณสมบัติเป็น 100% แต่<canvas>จะไม่ขยายขนาดใช่หรือไม่

26
ไม่มีโมดูลชื่อ MySQLdb
ฉันใช้ Python เวอร์ชั่น 2.5.4 และติดตั้ง MySQL เวอร์ชั่น 5.0 และ Django Django ทำงานได้ดีกับ Python แต่ไม่ใช่ MySQL ฉันกำลังใช้งานอยู่ใน Windows Vista


25
ทำไมการใช้ alloca () จึงไม่ถือว่าเป็นแนวปฏิบัติที่ดี?
alloca()malloc()หน่วยความจำที่จัดสรรในกองมากกว่าในกองเช่นในกรณีของ ดังนั้นเมื่อฉันกลับจากรูทีนหน่วยความจำจะถูกปล่อยให้เป็นอิสระ ดังนั้นที่จริงแล้วสิ่งนี้แก้ปัญหาของฉันในการเพิ่มหน่วยความจำที่จัดสรรแบบไดนามิก การเพิ่มจำนวนของหน่วยความจำที่จัดสรรผ่านmalloc()นั้นเป็นเรื่องที่น่าปวดหัวอย่างมากและหากพลาดไปก็จะทำให้เกิดปัญหาหน่วยความจำทุกประเภท ทำไมการใช้งานalloca()ท้อแท้ทั้งๆที่มีคุณสมบัติข้างต้น?
400 c  stack  malloc  allocation  alloca 

13
เปลี่ยนชื่อคีย์พจนานุกรม
มีวิธีการเปลี่ยนชื่อคีย์พจนานุกรมโดยไม่ต้องกำหนดค่าใหม่ให้เป็นชื่อใหม่และลบคีย์ชื่อเก่าออกหรือไม่ และไม่มีการวนซ้ำผ่านคีย์ / ค่า dict? ในกรณีของ OrderedDict ให้ทำเช่นเดียวกันในขณะที่รักษาตำแหน่งของคีย์นั้น

27
วิธีรีเซ็ต <input type =“ file”>
ฉันกำลังพัฒนาแอพ metro ด้วย VS2012 และ Javascript ฉันต้องการรีเซ็ตเนื้อหาของอินพุตไฟล์ของฉัน: &lt;input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" /&gt; ฉันควรทำอย่างไร

9
ฉันจะเห็นผลงานพิมพ์ปกติที่สร้างขึ้นในระหว่างการใช้งาน pytest ได้อย่างไร?
บางครั้งฉันต้องการแทรกคำสั่งการพิมพ์บางอย่างในรหัสของฉันและดูสิ่งที่พิมพ์ออกมาเมื่อฉันออกกำลังกาย วิธีปกติของฉันในการ "ออกกำลังกาย" คือการทดสอบที่มีอยู่กับ pytest แต่เมื่อฉันเรียกใช้สิ่งเหล่านี้ฉันไม่สามารถเห็นเอาต์พุตมาตรฐานใด ๆ (อย่างน้อยก็จากใน PyCharm, IDE ของฉัน) มีวิธีง่ายๆในการดูเอาต์พุตมาตรฐานในระหว่างการทดสอบ pytest หรือไม่?
400 python  logging  output  pytest 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.