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

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

30
สิ่งประดิษฐ์ใหม่ที่สำคัญในการคำนวณตั้งแต่ปี 1980
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คำถามนี้เกิดขึ้นจากความคิดเห็นเกี่ยวกับความคืบหน้าในการคำนวณในช่วง 50 ปีที่ผ่านมา ฉันถูกผู้เข้าร่วมคนอื่นถามเพื่อให้เป็นคำถามในฟอรัมทั้งหมด แนวคิดพื้นฐานที่นี่ไม่ได้เป็นการทุบตีสถานะปัจจุบันของสิ่งต่าง ๆ แต่พยายามที่จะเข้าใจบางสิ่งบางอย่างเกี่ยวกับความคืบหน้าของการคิดใหม่และหลักการพื้นฐาน ฉันอ้างว่าเราต้องการความคิดใหม่ ๆ ในด้านการคำนวณส่วนใหญ่และฉันต้องการที่จะรู้ถึงสิ่งที่สำคัญและมีประสิทธิภาพที่เพิ่งเกิดขึ้นเมื่อไม่นานมานี้ หากเราหาพวกเขาไม่พบจริงๆเราควรถาม "ทำไม" และ "เราควรทำอย่างไรดี"
561 innovation 

4
วิธีปฏิบัติที่ดีที่สุดในการโทร ConfigureAwait สำหรับรหัสฝั่งเซิร์ฟเวอร์ทั้งหมด
เมื่อคุณมีรหัสฝั่งเซิร์ฟเวอร์ (เช่นบางส่วนApiController) และฟังก์ชั่นของคุณจะไม่ตรงกัน - เพื่อให้พวกเขากลับมาTask<SomeObject>- มันถือว่าเป็นวิธีที่ดีที่สุดว่าเวลาที่คุณรอคอยฟังก์ชั่นที่คุณโทรหาConfigureAwait(false)? ฉันได้อ่านว่ามันมีประสิทธิภาพมากกว่าเพราะไม่ต้องสลับบริบทของเธรดกลับไปเป็นบริบทของเธรดดั้งเดิม อย่างไรก็ตามด้วย ASP.NET Web Api หากคำขอของคุณเข้ามาในเธรดเดียวและคุณรอฟังก์ชั่นและการโทรConfigureAwait(false)ที่อาจทำให้คุณอยู่ในเธรดอื่นเมื่อคุณส่งคืนผลลัพธ์สุดท้ายของApiControllerฟังก์ชัน ฉันได้พิมพ์ตัวอย่างของสิ่งที่ฉันพูดถึงด้านล่าง: public class CustomerController : ApiController { public async Task<Customer> Get(int id) { // you are on a particular thread here var customer = await SomeAsyncFunctionThatGetsCustomer(id).ConfigureAwait(false); // now you are on a different thread! will that cause problems? …

15
Escape @ ตัวละครในเครื่องมือดูมีดโกน
ฉันกำลังสร้างไซต์ ASP.NET MVC 3 ตัวอย่างโดยใช้มีดโกนเป็นเอ็นจิ้นการดู ไวยากรณ์มีดโกนเริ่มต้นด้วยตัวอักษรเช่น@ @RenderBody()ถ้าฉันเขียน @test บนหน้า cshtml ของฉันมันทำให้ฉันมีข้อผิดพลาดในการแยกวิเคราะห์ CS0103: ชื่อ 'ทดสอบ' ไม่มีอยู่ในบริบทปัจจุบัน ฉันจะหลบหนีตัวละคร '@' ได้อย่างไร

30
ฉันจะตั้งค่าตัวแก้ไขให้ทำงานกับ Git บน Windows ได้อย่างไร
ฉันพยายามออกGit บน Windows ฉันมาถึงจุดที่พยายาม "คอมมิทคอม" และฉันได้รับข้อผิดพลาดนี้: เทอร์มินัลเป็นใบ้ แต่ไม่ได้กำหนด VISUAL หรือ EDITOR โปรดระบุข้อความโดยใช้ตัวเลือก -m หรือ -F ดังนั้นฉันคิดว่าฉันต้องมีตัวแปรสภาพแวดล้อมที่เรียกว่า EDITOR ไม่มีปัญหา. ฉันตั้งให้ชี้ไปที่แผ่นจดบันทึก มันใช้ได้ผลเกือบ ข้อความส่งเริ่มต้นจะเปิดขึ้นใน Notepad แต่ Notepad ไม่รองรับฟีดบรรทัดเปล่า ฉันออกไปข้างนอกและได้รับแผ่นจดบันทึก ++แต่ฉันไม่สามารถหาวิธีตั้งค่าแผ่นจดบันทึก ++ ได้%EDITOR%ในลักษณะที่ใช้งานได้กับ Git ตามที่คาดไว้ ฉันไม่ได้แต่งงานกับ Notepad ++ ณ จุดนี้ฉันไม่รังเกียจสิ่งที่ฉันใช้แก้ไข ผมแค่อยากที่จะสามารถพิมพ์ข้อความในกระทำการแก้ไขมากกว่าบรรทัดคำสั่ง (มี-m) ผู้ที่คุณใช้ Git บน Windows: คุณใช้เครื่องมือใดในการแก้ไขข้อความการส่งข้อความและคุณต้องทำอย่างไรจึงจะทำงานได้
561 windows  git  cygwin  editor 

28
แนวทางปฏิบัติที่เป็นที่ยอมรับทั่วไปเกี่ยวกับการจัดระเบียบโค้ดใน JavaScript [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา เนื่องจากเฟรมเวิร์ก JavaScript อย่าง jQuery ทำให้เว็บแอปพลิเคชั่นฝั่งไคลเอ็นต์สมบูรณ์ยิ่งขึ้นและทำงานได้มากขึ้นฉันเริ่มสังเกตเห็นปัญหาหนึ่ง ... คุณจัดการเรื่องนี้เป็นอย่างไรในโลก ใส่เครื่องมือจัดการทั้งหมดของคุณไว้ในที่เดียวและเขียนฟังก์ชั่นสำหรับกิจกรรมทั้งหมดได้หรือไม่ สร้างฟังก์ชั่น / คลาสเพื่อห่อฟังก์ชั่นทั้งหมดของคุณ? เขียนอย่างบ้าคลั่งและหวังว่ามันจะออกมาดีที่สุด? ยอมแพ้และรับอาชีพใหม่? ฉันพูดถึง jQuery แต่จริงๆแล้วรหัส JavaScript ใด ๆ โดยทั่วไป ฉันพบว่าเมื่อบรรทัดต่อบรรทัดเริ่มกองพะเนินมันก็ยากที่จะจัดการไฟล์สคริปต์หรือค้นหาสิ่งที่คุณกำลังมองหา อาจเป็นสัญลักษณ์ที่ยิ่งใหญ่ที่สุดที่ฉันเคยพบมีหลายวิธีในการทำสิ่งเดียวกันมันยากที่จะรู้ว่าอันไหนเป็นแนวทางปฏิบัติที่ดีที่สุดในปัจจุบันที่ยอมรับกันโดยทั่วไป มีคำแนะนำทั่วไปเกี่ยวกับวิธีที่ดีที่สุดในการรักษาไฟล์. jsของคุณให้สวยงามและเรียบร้อยเหมือนกับแอพพลิเคชั่นอื่น ๆ ของคุณหรือไม่? หรือนี่เป็นเพียงเรื่องของ IDE หรือไม่? มีตัวเลือกที่ดีกว่าอยู่ที่นั่นไหม? แก้ไข คำถามนี้มีวัตถุประสงค์เพื่อเพิ่มเติมเกี่ยวกับการจัดระเบียบโค้ดไม่ใช่การจัดระเบียบไฟล์ มีบางตัวอย่างที่ดีของการรวมไฟล์หรือแยกเนื้อหา คำถามของฉันคืออะไรวิธีปฏิบัติที่ดีที่สุดในปัจจุบันที่ยอมรับกันทั่วไปในการจัดระเบียบรหัสจริงของคุณคืออะไร? คุณมีวิธีอะไรหรือแม้กระทั่งวิธีที่แนะนำในการโต้ตอบกับองค์ประกอบของหน้าและสร้างโค้ดที่สามารถนำมาใช้ซ้ำได้ซึ่งไม่ขัดแย้งกัน บางคนมีการระบุnamespacesซึ่งเป็นความคิดที่ดี มีวิธีอื่นใดอีกที่เกี่ยวข้องกับองค์ประกอบต่างๆในหน้าเว็บและรักษารหัสให้เป็นระเบียบและเรียบร้อย?


8
วิธีย่อ / ลบไฟล์ ibdata1 ใน MySQL
ฉันใช้ MySQL ใน localhost เป็น "เครื่องมือสืบค้น" สำหรับการแสดงสถิติใน R นั่นคือทุกครั้งที่ฉันเรียกใช้สคริปต์ R ฉันสร้างฐานข้อมูลใหม่ (A) สร้างตารางใหม่ (B) นำเข้าข้อมูลลงใน B ส่งคำค้นหาเพื่อรับสิ่งที่ฉันต้องการจากนั้นฉันปล่อย B และวาง A มันใช้งานได้ดีสำหรับฉัน แต่ฉันรู้ว่าขนาดไฟล์ ibdata เพิ่มขึ้นอย่างรวดเร็วฉันไม่ได้เก็บอะไรไว้ใน MySQL แต่ไฟล์ ibdata1 มีขนาดเกิน 100 MB แล้ว ฉันกำลังใช้การตั้งค่า MySQL เริ่มต้นมากขึ้นหรือน้อยลงสำหรับการตั้งค่ามีวิธีที่ฉันสามารถย่อ / ลบไฟล์ ibdata1 โดยอัตโนมัติหลังจากระยะเวลาที่กำหนดหรือไม่
561 mysql  database  innodb 

10
ที่เก็บข้อมูล HTML5 โลคัลกับที่เก็บข้อมูลเซสชัน
นอกเหนือจากการไม่คงอยู่และถูกกำหนดขอบเขตไปยังหน้าต่างปัจจุบันเท่านั้นยังมีประโยชน์อื่นใดบ้าง (ประสิทธิภาพการเข้าถึงข้อมูลและอื่น ๆ ) ไปยังที่จัดเก็บข้อมูลเซสชันผ่านการจัดเก็บในท้องถิ่นหรือไม่

14
รุ่น Node.js บนบรรทัดคำสั่ง? (ไม่ใช่ REPL)
ฉันต้องการรับ Node.js ในบรรทัดคำสั่ง ฉันคาดว่าจะใช้คำสั่งเช่น: node -version แต่นั่นไม่ได้ผล ไม่มีใครรู้ว่าบรรทัดคำสั่งจะเป็นอย่างไร (เช่นไม่ใช่ REPL)

14
ค้นหาและแทนที่ภายในไฟล์ข้อความจากคำสั่ง Bash
วิธีที่ง่ายที่สุดในการค้นหาและแทนที่สตริงอินพุตที่ระบุพูดabcและแทนที่ด้วยสตริงอื่นคือพูดXYZในไฟล์/tmp/file.txt? ฉันกำลังเขียนแอพและใช้ IronPython เพื่อดำเนินการคำสั่งผ่าน SSH - แต่ฉันไม่รู้จัก Unix ที่ดีและไม่รู้ว่าจะหาอะไร ฉันได้ยินมาว่า Bash นอกเหนือจากการเป็นอินเตอร์เฟสบรรทัดคำสั่งอาจเป็นภาษาสคริปต์ที่ทรงพลังมาก ดังนั้นถ้าเป็นจริงฉันคิดว่าคุณสามารถทำสิ่งเหล่านี้ได้ ฉันสามารถทำได้ด้วยการทุบตีและสคริปต์ (บรรทัดเดียว) ที่ง่ายที่สุดในการบรรลุเป้าหมายของฉันคืออะไร

10
วิธีแทรกตัวแบ่งบรรทัดในสตริง SQL VARCHAR / NVARCHAR ของเซิร์ฟเวอร์ SQL
ฉันไม่เห็นคำถามที่คล้ายกันถามในหัวข้อนี้และฉันต้องค้นคว้าสิ่งนี้เพื่อสิ่งที่ฉันทำงานในขณะนี้ คิดว่าฉันจะโพสต์คำตอบสำหรับมันในกรณีที่คนอื่นมีคำถามเดียวกัน

15
ใช้ jQuery เพื่อทดสอบว่าอินพุตมีโฟกัสหรือไม่
ในหน้าแรกของเว็บไซต์ที่ฉันกำลังสร้างหลายแห่ง<div>ใช้ CSS :hoverหลอกคลาสเพื่อเพิ่มเส้นขอบเมื่อเมาส์อยู่เหนือพวกเขา หนึ่งในนั้น<div>ประกอบด้วย a <form>ซึ่งใช้ jQuery จะเก็บขอบไว้หากอินพุตภายในนั้นมีโฟกัส มันทำงานได้อย่างสมบูรณ์ยกเว้นว่า IE6 ไม่รองรับ:hoverองค์ประกอบอื่นที่ไม่ใช่<a>s ดังนั้นสำหรับเบราว์เซอร์นี้เราเท่านั้นที่ใช้ jQuery เพื่อเลียนแบบ CSS :hoverโดยใช้$(#element).hover()เมธอด ปัญหาเดียวคือตอนนี้ที่ jQuery จัดการทั้งแบบฟอร์มfocus() และ hover()เมื่ออินพุตมีการโฟกัสผู้ใช้จะย้ายเมาส์เข้าและออกเส้นขอบจะหายไป ฉันคิดว่าเราสามารถใช้เงื่อนไขบางอย่างเพื่อหยุดพฤติกรรมนี้ ตัวอย่างเช่นหากเราทดสอบโดยใช้เมาส์หากอินพุตใด ๆ มีโฟกัสเราสามารถหยุดเส้นขอบไม่ให้หายไปได้ AFAIK ไม่มี:focusตัวเลือกใน jQuery ดังนั้นฉันไม่แน่ใจว่าจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร ความคิดใด ๆ

8
ความแตกต่างระหว่างห้องสมุดแบบคงที่และที่ใช้ร่วมกัน?
อะไรคือความแตกต่างระหว่างห้องสมุดแบบคงที่และที่ใช้ร่วมกัน? ฉันใช้ Eclipse และมีโปรเจ็กต์หลายประเภทรวมถึง Static Libraries และ Shared Libraries? คนหนึ่งได้เปรียบกว่าอีกคนหนึ่งหรือเปล่า?

14
วิธีลบคีย์ออกจากแฮชและรับแฮชที่เหลือใน Ruby / Rails
หากต้องการเพิ่มคู่ใหม่ใน Hash ฉัน: {:a => 1, :b => 2}.merge!({:c => 3}) #=> {:a => 1, :b => 2, :c => 3} มีวิธีคล้ายกันในการลบคีย์ออกจากแฮชหรือไม่ งานนี้: {:a => 1, :b => 2}.reject! { |k| k == :a } #=> {:b => 2} แต่ฉันคาดหวังว่าจะมีสิ่งที่ชอบ: {:a => 1, :b => 2}.delete!(:a) #=> {:b => 2} …

3
เหตุใดเบราว์เซอร์จึงตรงกับตัวเลือก CSS จากขวาไปซ้าย
CSS Selectors ถูกจับคู่โดยเครื่องมือเบราว์เซอร์จากขวาไปซ้าย ดังนั้นพวกเขาจึงหาเด็ก ๆ ก่อนจากนั้นตรวจสอบผู้ปกครองเพื่อดูว่าตรงกับส่วนที่เหลือของกฎหรือไม่ ทำไมนี้ มันเป็นเพียงเพราะสเป็คบอกว่า? มันจะมีผลต่อเค้าโครงท้ายที่สุดหรือไม่หากประเมินจากซ้ายไปขวา สำหรับฉันวิธีที่ง่ายที่สุดที่จะทำคือใช้ตัวเลือกที่มีจำนวนองค์ประกอบน้อยที่สุด ดังนั้น IDs เป็นอันดับแรก (เนื่องจากควรคืนค่า 1 องค์ประกอบเท่านั้น) จากนั้นอาจคลาสหรือองค์ประกอบที่มีจำนวนโหนดน้อยที่สุด - เช่นอาจมีเพียงหนึ่งช่วงบนหน้าดังนั้นไปที่โหนดนั้นโดยตรงด้วยกฎใด ๆ ที่อ้างอิงช่วง นี่คือลิงค์บางส่วนที่สำรองข้อมูลการอ้างสิทธิ์ของฉัน http://code.google.com/speed/page-speed/docs/rendering.html https://developer.mozilla.org/en/Writing_Efficient_CSS ดูเหมือนว่าจะทำเช่นนี้เพื่อหลีกเลี่ยงการดูเด็กทุกคนของพ่อแม่ (ซึ่งอาจเป็นจำนวนมาก) มากกว่าพ่อแม่ทุกคนของเด็กที่จะต้องเป็นหนึ่ง แม้ว่า DOM จะลึกมันก็จะดูที่หนึ่งโหนดต่อระดับแทนที่จะเป็นหลาย ๆ ในการจับคู่ RTL ง่ายกว่าหรือเร็วกว่าในการประเมิน CSS selectors LTR หรือ RTL

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