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

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

11
ดำเนินการไบนารีบรรทัดคำสั่งด้วย Node.js
ฉันอยู่ระหว่างการย้ายไลบรารี CLI จาก Ruby ไปยัง Node.js ในรหัสของฉันฉันรันไบนารีบุคคลที่สามหลายครั้งเมื่อจำเป็น ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการบรรลุผลในโหนด นี่คือตัวอย่างใน Ruby ที่ฉันเรียก PrinceXML เพื่อแปลงไฟล์เป็น PDF: cmd = system("prince -v builds/pdf/book.html -o builds/pdf/book.pdf") รหัสเทียบเท่าในโหนดคืออะไร?

11
การสั่งซื้อคุณสมบัติวัตถุรับประกัน JavaScript หรือไม่
ถ้าฉันสร้างวัตถุเช่นนี้: var obj = {}; obj.prop1 = "Foo"; obj.prop2 = "Bar"; วัตถุที่เป็นผลลัพธ์จะมีลักษณะเช่นนี้เสมอหรือไม่ { prop1 : "Foo", prop2 : "Bar" } นั่นคือคุณสมบัติจะอยู่ในลำดับเดียวกันกับที่ฉันเพิ่มเข้าไปหรือไม่
647 javascript  object 

30
การใช้ INotifyPropertyChanged - มีวิธีที่ดีกว่านี้หรือไม่?
Microsoft ควรนำสิ่งที่น่าสนใจมาใช้INotifyPropertyChangedเช่นในคุณสมบัติอัตโนมัติเพียงระบุว่า{get; set; notify;} ฉันคิดว่ามันสมเหตุสมผลดี หรือมีภาวะแทรกซ้อนใด ๆ ที่จะทำหรือไม่ ตัวเราเองสามารถใช้บางอย่างเช่น 'แจ้งเตือน' ในคุณสมบัติของเรา มีวิธีการแก้ปัญหาที่สง่างามสำหรับการนำไปใช้INotifyPropertyChangedในชั้นเรียนของคุณหรือวิธีเดียวที่จะทำได้คือการเพิ่มPropertyChangedเหตุการณ์ในแต่ละสถานที่ให้บริการ หากเราไม่สามารถเขียนบางสิ่งเพื่อสร้างชิ้นส่วนของรหัสโดยอัตโนมัติเพื่อเพิ่มPropertyChanged เหตุการณ์ได้

13
ฟังก์ชั่นเวลามีอยู่ในการตั้งโปรแกรมการทำงานอย่างไร
ฉันต้องยอมรับว่าฉันไม่รู้เกี่ยวกับการเขียนโปรแกรมฟังก์ชั่นมากนัก ฉันอ่านเกี่ยวกับมันจากที่นี่และที่นั่นและได้รู้ว่าในการเขียนโปรแกรมเชิงฟังก์ชันฟังก์ชั่นจะคืนค่าเอาต์พุตเดียวกันสำหรับอินพุตเดียวกันไม่ว่าจะเรียกใช้ฟังก์ชันกี่ครั้งก็ตาม มันเหมือนกับฟังก์ชันทางคณิตศาสตร์ที่ประเมินผลลัพธ์เดียวกันสำหรับค่าเดียวกันของพารามิเตอร์อินพุตที่เกี่ยวข้องในการแสดงออกของฟังก์ชัน ตัวอย่างเช่นพิจารณาสิ่งนี้: f(x,y) = x*x + y; // It is a mathematical function ไม่ว่าคุณจะใช้ไปกี่ครั้งf(10,4)ก็ตามคุณค่าของมันจะยังคงอยู่ตลอด104ไป ดังนั้นทุกที่ที่คุณเขียนf(10,4)คุณสามารถแทนที่ด้วย104โดยไม่ต้องเปลี่ยนค่าของการแสดงออกทั้งหมด คุณสมบัตินี้เรียกว่าการอ้างอิงโปร่งใสของการแสดงออก ตามที่ Wikipedia พูดว่า ( ลิงค์ ) ในทางกลับกันในฟังก์ชั่นรหัสค่าเอาท์พุทของฟังก์ชั่นขึ้นอยู่กับอาร์กิวเมนต์ที่ใส่เข้าไปในฟังก์ชั่นเท่านั้นดังนั้นการเรียกใช้ฟังก์ชัน f สองครั้งด้วยค่าเดียวกันสำหรับอาร์กิวเมนต์ x จะให้ผลลัพธ์ที่เหมือนกัน f (x) ทั้งสองครั้ง ฟังก์ชั่นเวลา (ซึ่งจะคืนค่าเวลาปัจจุบัน ) สามารถมีอยู่ในการตั้งโปรแกรมการทำงานหรือไม่ ถ้าใช่แล้วมันจะมีอยู่ได้อย่างไร? มันไม่ได้ละเมิดหลักการของฟังก์ชั่นการเขียนโปรแกรมหรือไม่? มันละเมิดความโปร่งใสในการอ้างอิงซึ่งเป็นหนึ่งในคุณสมบัติของการเขียนโปรแกรมการทำงาน (ถ้าฉันเข้าใจถูกต้อง) หรือถ้าไม่, แล้วเราจะรู้เวลาปัจจุบันในการโปรแกรมเชิงฟังก์ชันได้อย่างไร?


17
ActiveMQ หรือ RabbitMQ หรือ ZeroMQ หรือ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ เราสนใจที่จะรับฟังประสบการณ์ใด ๆ กับข้อดีและข้อเสียของ ActiveMQ เทียบกับ RabbitMQ กับ ZeroMQ ข้อมูลเกี่ยวกับคิวข้อความที่น่าสนใจอื่น ๆ ก็ยินดีต้อนรับเช่นกัน

4
การฉีด SQL ที่ได้รับรอบ mysql_real_escape_string ()
มีความเป็นไปได้ในการฉีด SQL แม้ว่าจะใช้mysql_real_escape_string()ฟังก์ชันอยู่หรือไม่ พิจารณาสถานการณ์ตัวอย่างนี้ SQL ถูกสร้างใน PHP ดังนี้: $login = mysql_real_escape_string(GetFromPost('login')); $password = mysql_real_escape_string(GetFromPost('password')); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'"; ฉันเคยได้ยินคนจำนวนมากพูดกับฉันว่ารหัสเช่นนั้นยังคงเป็นอันตรายและเป็นไปได้ที่จะแฮ็กแม้จะmysql_real_escape_string()ใช้ฟังก์ชั่น แต่ฉันไม่สามารถคิดถึงการหาประโยชน์ที่เป็นไปได้ใด ๆ การฉีดแบบคลาสสิคเช่นนี้: aaa' OR 1=1 -- ไม่ทำงาน. คุณรู้หรือไม่ว่าการฉีดใด ๆ ที่เป็นไปได้ซึ่งจะได้รับผ่านโค้ด PHP ข้างต้น?

5
ดัชนีหลายรายการเทียบกับดัชนีหลายคอลัมน์
ฉันเพิ่งเพิ่มดัชนีไปยังตารางใน SQL Server 2005 และมันทำให้ฉันคิด อะไรคือความแตกต่างระหว่างการสร้าง 1 ดัชนีและการกำหนดหลายคอลัมน์โดยมี 1 ดัชนีต่อคอลัมน์ที่คุณต้องการจัดทำดัชนี มีเหตุผลบางอย่างว่าทำไมจึงควรใช้อีกอันหนึ่ง? ตัวอย่างเช่น Create NonClustered Index IX_IndexName On TableName (Column1 Asc, Column2 Asc, Column3 Asc) กับ Create NonClustered Index IX_IndexName1 On TableName (Column1 Asc) Create NonClustered Index IX_IndexName2 On TableName (Column2 Asc) Create NonClustered Index IX_IndexName3 On TableName (Column3 Asc)

21
จัดเรียงอาร์เรย์ตามชื่อ (ตัวอักษร) ใน Javascript
ฉันได้อาร์เรย์ (ดูด้านล่างสำหรับหนึ่งวัตถุในอาร์เรย์) ที่ฉันต้องการเรียงลำดับตามชื่อโดยใช้ JavaScript ฉันจะทำมันได้อย่างไร var user = { bio: null, email: "user@domain.com", firstname: "Anna", id: 318, lastAvatar: null, lastMessage: null, lastname: "Nickson", nickname: "anny" };
645 javascript 


13
รายการการเปลี่ยนแปลงที่แสดงในรายการย่อยโดยไม่คาดคิด
ฉันต้องการสร้างรายการของรายการใน Python ดังนั้นฉันจึงพิมพ์รายการต่อไปนี้: myList = [[1] * 4] * 3 รายการมีลักษณะดังนี้: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] จากนั้นฉันเปลี่ยนหนึ่งในค่าในสุด: myList[0][0] = 5 ตอนนี้รายการของฉันมีลักษณะเช่นนี้: [[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]] ซึ่งไม่ใช่สิ่งที่ฉันต้องการหรือคาดหวัง ใครช่วยอธิบายสิ่งที่เกิดขึ้นและทำอย่างไรจึงจะหลีกเลี่ยงได้

9
คำสั่ง Git เพื่อแสดงไฟล์เฉพาะที่ถูกละเว้นโดย. gitignore
ฉันเริ่มเปียกด้วย Git และมีปัญหาต่อไปนี้: ต้นไม้ต้นกำเนิดโครงการของฉัน: / | +--src/ +----refs/ +----... | +--vendor/ +----... ฉันมีรหัส (ปัจจุบัน MEF) ในสาขาผู้จัดจำหน่ายของฉันที่ฉันจะรวบรวมที่นั่นแล้วย้ายการอ้างอิงไป/src/refsยังที่ที่โครงการเลือกพวกเขามา ปัญหาของฉันเป็นที่ฉันมีของฉัน.gitignoreชุดที่จะไม่สนใจและ*.dll *.pdbฉันสามารถทำได้git add -f bar.dllเพื่อบังคับให้เพิ่มไฟล์ที่ถูกละเว้นซึ่งก็โอเคปัญหาคือฉันไม่สามารถหารายการไฟล์ที่มีอยู่ที่ถูกละเว้นได้ ฉันต้องการแสดงรายการไฟล์ที่ถูกละเว้นเพื่อให้แน่ใจว่าฉันจะไม่ลืมที่จะเพิ่ม ฉันอ่าน man page git ls-filesแล้วและไม่สามารถใช้งานได้ ดูเหมือนว่าฉันgit ls-files --exclude-standard -iควรทำในสิ่งที่ฉันต้องการ ฉันพลาดอะไรไป
645 git  ignore 

7
การติดตามสแต็กคืออะไรและฉันจะใช้เพื่อแก้ไขข้อผิดพลาดแอปพลิเคชันของฉันได้อย่างไร
Наэтотвопросестьответына กองมากเกินнарусском : Чтотакоеสแต็คร่องรอยикаксегопомощьюнаходитьошибкипри разработкеприложений ? บางครั้งเมื่อฉันเรียกใช้แอปพลิเคชันของฉันมันทำให้ฉันมีข้อผิดพลาดที่ดูเหมือนว่า: Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Book.getTitle(Book.java:16) at com.example.myproject.Author.getBookTitles(Author.java:25) at com.example.myproject.Bootstrap.main(Bootstrap.java:14) ผู้คนอ้างถึงสิ่งนี้ว่าเป็น "การติดตามสแต็ก" การติดตามสแต็กคืออะไร มีอะไรบอกฉันได้บ้างเกี่ยวกับข้อผิดพลาดที่เกิดขึ้นในโปรแกรมของฉัน เกี่ยวกับคำถามนี้ - บ่อยครั้งที่ฉันเห็นคำถามเกิดขึ้นโดยที่โปรแกรมเมอร์มือใหม่กำลัง "รับข้อผิดพลาด" และพวกเขาก็วางสแต็กการติดตามและบล็อกโค้ดแบบสุ่มโดยไม่เข้าใจว่าสแต็กการติดตามคืออะไร คำถามนี้มีวัตถุประสงค์เพื่อเป็นข้อมูลอ้างอิงสำหรับโปรแกรมเมอร์มือใหม่ที่อาจต้องการความช่วยเหลือในการทำความเข้าใจคุณค่าของการติดตามสแต็ก


24
จะทดสอบตัวแปรหลายตัวกับค่าได้อย่างไร
ฉันพยายามสร้างฟังก์ชั่นที่จะเปรียบเทียบตัวแปรหลายตัวกับจำนวนเต็มและส่งออกสตริงของตัวอักษรสามตัว ฉันสงสัยว่ามีวิธีในการแปลภาษานี้เป็น Python หรือไม่ ดังนั้นพูดว่า: x = 0 y = 1 z = 3 mylist = [] if x or y or z == 0 : mylist.append("c") if x or y or z == 1 : mylist.append("d") if x or y or z == 2 : mylist.append("e") if x or …

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