วิธีการออกแบบแอปพลิเคชัน Ember.js


105

เป็นเรื่องยากที่จะติดตามวิวัฒนาการของ Ember JS เมื่อใกล้เข้ามา (และถึง!) เวอร์ชัน 1.0.0 บทช่วยสอนและเอกสารต่างๆมีมาเรื่อย ๆ ทำให้เกิดความสับสนมากมายเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดและเจตนาของนักพัฒนาซอฟต์แวร์ดั้งเดิม

คำถามของฉันคืออะไรคือแนวทางปฏิบัติที่ดีที่สุดสำหรับ Ember JS มีบทช่วยสอนที่อัปเดตหรือตัวอย่างการทำงานที่แสดงให้เห็นว่า Ember JS ตั้งใจจะใช้หรือไม่ ตัวอย่างโค้ดจะดีมาก!

ขอบคุณทุกคนโดยเฉพาะ Ember JS devs!


7
คำถามนี้อยู่ในอันดับต้น ๆ สำหรับการค้นหาของ Google ด้วยคำว่า "EmberJS tutorial" แต่ก็ไม่ได้ตอบคำถามนั้นจริงๆ นี่เป็นคำถามเกี่ยวกับ 2 ลิงก์บนอินเทอร์เน็ต คุณจะพิจารณาเปลี่ยนคำถามนี้ให้เหมาะสมกับชื่อเรื่องหรือไม่ ฉันคิดว่าคำตอบที่ดีที่สุดน่าจะเป็นคำตอบที่นำใครบางคนผ่านกระบวนการสร้างแอปพลิเคชันด้วย EmberJS
George Stocker

คำตอบ:


17

มีโครงการสำคัญที่นักพัฒนา Ember.js ทั้งมือใหม่และมือเก๋าควรใช้ประโยชน์จาก:

Ember-CLI

แม้ว่าจะต้องการระดับความสะดวกสบายในบรรทัดคำสั่ง แต่คุณสามารถสร้างโครงการ Ember ที่ทันสมัยพร้อมแนวทางปฏิบัติที่ดีที่สุดที่แนะนำโดยชุมชนได้ในเวลาไม่กี่วินาที

แม้ว่าจะเป็นประโยชน์ในการตั้งค่าโครงการ Ember.js ในวิธีที่ยากเช่นเดียวกับคำตอบของ Mike Grassotti แต่คุณไม่ควรทำเช่นนั้นสำหรับรหัสการผลิต โดยเฉพาะอย่างยิ่งเมื่อเราได้เช่นที่มีประสิทธิภาพและง่ายต่อการใช้งานโครงการเช่นEmber-CLIการแสดงให้เราเห็นฮุดะได้รับการอนุมัติเส้นทางความสุข


1
ขอบคุณ Matt! ฉันได้ทำให้สิ่งนี้เป็นคำตอบที่ได้รับการยอมรับในการส่งต่อการเข้าชมไปยัง Ember-CLI
Craig Labenz

เพิ่งเริ่มใช้ Ember เป็นครั้งแรกเมื่อสองสามวันก่อนและ Ember-CLI นั้นค่อนข้างง่ายในการเริ่มต้นและใช้งาน ข้อเสียเพียงอย่างเดียวคือมันนำเสนอความซับซ้อนมากมายที่คุณอาจไม่ต้องการ / จำเป็น (แม้ว่าจะมีความซับซ้อนที่สามารถมองข้ามได้หากคุณเป็นคนที่ไว้ใจได้) Bower และ JSHint และ Ember-CLI และ Travis CI และไฟล์ config EditorConfig และ Git รวมถึงสิ่งอื่น ๆ เช่น Broccoli for assets และ PhantomJS สำหรับการทดสอบ ...
JKillian

จุดยุติธรรม @JKillian. ฉันรู้ว่ามีความกังวลเกี่ยวกับช่วงการเรียนรู้ของ Ember ด้วยเหตุผลเหล่านั้น แม้ว่า Ember-cli จะนำเสนอความซับซ้อนบางอย่าง (Ember-data & Broccoli) แต่ก็ช่วยขจัดความสับสนอย่างมีนัยสำคัญเกี่ยวกับข้อกำหนดของผู้ขายและการจัดโครงสร้างโครงการของคุณ มีเกลือเม็ดหนึ่ง
Matt Jensen

1
เห็นด้วยอย่างยิ่งกับเส้นทางแห่งความสุขของ Ember CLI! คู่มือการเริ่มต้นฉบับย่อของ Mike Grassotti ด้านล่างจะเป็น "ขั้นตอนต่อไป" ที่สมบูรณ์แบบหากไม่เป็นเช่นนั้น ... สำหรับผู้ที่ต้องการสร้างแอป Ember 2.0 สิ่งที่ดีที่สุดสำหรับแนวทางปฏิบัติที่ดีที่สุดคือการทำให้แน่ใจว่าคุณเข้าใจแนวคิดหลัก: โมเดลเส้นทางบริการส่วนประกอบ ฯลฯ เอกสาร Ember เป็นแหล่งข้อมูลที่ยอดเยี่ยม แต่เนื่องจากฉัน ยังไม่เจอคู่มือที่อัปเดตเดียวที่เชื่อมโยงแนวคิดทั้งหมด (น้อยกว่ามากกับแอปตัวอย่าง) ฉันตัดสินใจที่จะเขียนสิ่งนี้: emberigniter.com/5-essential-ember-2.0-concepts
Frank Treacy

110

คู่มือเริ่มต้นใช้งานด่วน Ember.js ขั้นต่ำของ Mike Grassotti

คู่มือการเริ่มต้นฉบับย่อนี้จะช่วยให้คุณได้รับจากศูนย์ไปเป็นมากกว่าศูนย์เล็กน้อยในสองสามนาที เมื่อทำเสร็จแล้วคุณควรรู้สึกค่อนข้างมั่นใจว่า ember.js ใช้งานได้จริงและหวังว่าจะมีความสนใจมากพอที่จะเรียนรู้เพิ่มเติม

คำเตือน: อย่าเพิ่งลองใช้คำแนะนำนี้แล้วคิดว่าถ่านดูดทำให้เกิด "ฉันสามารถเขียนคู่มือการเริ่มต้นฉบับย่อนั้นได้ดีกว่าใน jQuery หรือ Fortran" หรืออะไรก็ตาม ฉันไม่ได้พยายามขายคุณด้วยถ่านไฟหรืออะไรก็ตามคู่มือนี้เป็นเพียงแค่สวัสดีชาวโลกเท่านั้น

ขั้นตอนที่ 0 - ลองดู jsFiddle

jsFiddle นี้มีรหัสทั้งหมดจากคำตอบนี้

ขั้นตอนที่ 1 - รวม ember.js และไลบรารีอื่น ๆ ที่จำเป็น

Ember.js ต้องการทั้ง jQuery และ Handlebars ต้องแน่ใจว่าไลบรารีเหล่านั้นโหลดก่อน ember.js:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.1/ember.js"></script>

ขั้นตอนที่ 2 - อธิบายส่วนต่อประสานผู้ใช้ของแอปพลิเคชันของคุณโดยใช้เทมเพลตแฮนเดิลบาร์อย่างน้อยหนึ่งเทมเพลต

โดยค่าเริ่มต้น ember จะแทนที่เนื้อหาของหน้า html ของคุณโดยใช้เนื้อหาของเทมเพลต handlbars อย่างน้อยหนึ่งรายการ สักวันเทมเพลตเหล่านี้จะอยู่ในไฟล์. hbs ที่แยกจากกันซึ่งประกอบโดย sprockets หรืออาจจะเป็น grunt.js ตอนนี้เราจะเก็บทุกอย่างไว้ในไฟล์เดียวและใช้แท็กสคริปต์

ขั้นแรกให้เพิ่มapplicationเทมเพลตเดียว:

<script type="text/x-handlebars" data-template-name="application">
  <div class="container">
    <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
    <p>{{message}}</p>
  </div>
</script>

ขั้นตอนที่ 3 - เริ่มต้นแอปพลิเคชันถ่านของคุณ

เพียงเพิ่มบล็อกสคริปต์อื่นApp = Ember.Application.create({});เพื่อโหลด ember.js และเริ่มต้นแอปพลิเคชันของคุณ

<script type='text/javascript'>
  App = Ember.Application.create({});
</script>

นั่นคือทั้งหมดที่คุณต้องสร้างแอปพลิเคชันถ่านไฟฉายพื้นฐาน แต่ก็ไม่น่าสนใจมากนัก

ขั้นตอนที่ 4: เพิ่มคอนโทรลเลอร์

Ember ประเมินแต่ละเทมเพลตของแฮนด์บาร์ในบริบทของคอนโทรลเลอร์ ดังนั้นแม่แบบมีการจับคู่application ApplicationControllerEmber สร้างขึ้นโดยอัตโนมัติหากคุณไม่ได้กำหนด แต่ที่นี่เรามาปรับแต่งเพื่อเพิ่มคุณสมบัติข้อความ

<script type='text/javascript'>
App.ApplicationController = Ember.Controller.extend({
    message: 'This is the application template' 
});
</script>

ขั้นตอนที่ 5: กำหนดเส้นทาง + ตัวควบคุมและเทมเพลตเพิ่มเติม

เราเตอร์ Ember ทำให้ง่ายต่อการรวมเทมเพลต / คอนโทรลเลอร์เข้ากับแอปพลิเคชัน

<script type='text/javascript'>
  App.Router.map(function() {
    this.route("index", { path: "/" });
    this.route("list", { path: "/list" });
  });

  App.IndexController = Ember.Controller.extend({
    message: 'Hello! See how index.hbs is evaluated in the context of IndexController' 
  });

  App.ListRoute = Ember.Route.extend({
    setupController: function(controller) {
      controller.set('content', ['angular.js', 'backbone.js', 'ember.js']);
    }
  });

</script>

ในการทำงานนี้เราปรับเปลี่ยนเทมเพลตแอปพลิเคชันของเราโดยการเพิ่มตัว{{outlet}}ช่วย เราเตอร์ Ember จะแสดงเทมเพลตที่เหมาะสมในเต้าเสียบขึ้นอยู่กับเส้นทางของผู้ใช้ นอกจากนี้เราจะใช้ตัว{{linkTo}}ช่วยเพื่อเพิ่มลิงก์การนำทาง

    <script type="text/x-handlebars" data-template-name="application">
      <div class="container">
          <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
        <p>{{message}}</p>
        <div class="row">
          {{#linkTo index class="span3 btn btn-large btn-block"}}Home{{/linkTo}}
          {{#linkTo list class="span3 btn btn-large btn-block"}}List{{/linkTo}}
        </div>
        {{outlet}}
      </div>
    </script>

    <script type="text/x-handlebars" data-template-name="list">
      <h3 class="demo-panel-title">This is the list template</h3>
      <ul>
      {{#each item in content}}
          <li>{{item}}</li>
      {{/each}}
       </ul>
    </script>

    <script type="text/x-handlebars" data-template-name="index">
      <h3 class="demo-panel-title">This is the index template</h3>
      <p>{{message}}</p>
    </script>

เสร็จแล้ว!

ตัวอย่างการทำงานของโปรแกรมนี้สามารถใช้ได้ที่นี่

คุณสามารถใช้jsFiddle นี้เป็นจุดเริ่มต้นสำหรับแอพถ่านของคุณเอง

ขั้นตอนถัดไป...

  • อ่านคู่มือ Ember
  • อาจจะซื้อPeepcode screencast
  • ถามคำถามที่นี่ใน Stack Overflow หรือใน ember IRC

สำหรับการอ้างอิงคำตอบเดิมของฉัน:


คำถามของฉันมีไว้สำหรับผู้เชี่ยวชาญ Ember.js และแน่นอนว่าเป็นผู้เขียนบทช่วยสอนที่เกี่ยวข้อง: ฉันควรใช้รูปแบบการออกแบบจากบทช่วยสอนหนึ่งเมื่อใดและจากที่อื่นเมื่อใด

แบบฝึกหัดทั้งสองนี้แสดงถึงแนวทางปฏิบัติที่ดีที่สุดในขณะที่เขียน แน่นอนว่ามีบางสิ่งที่สามารถเรียนรู้ได้จากแต่ละสิ่งทั้งสองอย่างน่าเศร้าที่จะล้าสมัยเพราะ ember.js กำลังดำเนินไปอย่างรวดเร็ว จากทั้งสองอย่าง Trek เป็นปัจจุบันมากกว่า

ส่วนประกอบใดของแต่ละส่วนคือความชอบส่วนตัวและส่วนประกอบใดบ้างที่จะพิสูจน์ได้ว่าจำเป็นเมื่อแอปของฉันเติบโตเต็มที่ หากคุณกำลังพัฒนาแอปพลิเคชัน ember ใหม่ฉันไม่แนะนำให้ทำตามแนวทาง Code Lab มันล้าสมัยเกินไปที่จะเป็นประโยชน์

ในการออกแบบของ Code Lab ดูเหมือนว่า Ember จะใกล้เคียงกับที่มีอยู่ในแอปพลิเคชันมากขึ้น (แม้ว่าจะเป็น JS ที่กำหนดเอง 100% ก็ตาม) ในขณะที่แอปพลิเคชันของ Trek ดูเหมือนจะอยู่ใน Ember มากขึ้น

ความคิดเห็นของคุณกำลังปัง CodeLab ใช้ประโยชน์จากส่วนประกอบหลักของถ่านและเข้าถึงจากขอบเขตทั่วโลก ตอนที่เขียน (9 เดือนที่แล้ว) สิ่งนี้เป็นเรื่องธรรมดา แต่ปัจจุบันแนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนแอปพลิเคชัน ember นั้นใกล้เคียงกับสิ่งที่ Trek กำลังทำอยู่มาก

ที่กล่าวว่าแม้แต่บทแนะนำของ Trek ก็ล้าสมัย คอมโพเนนต์ที่จำเป็นApplicationViewและApplicationControllerตอนนี้สร้างขึ้นโดยเฟรมเวิร์กเอง

แหล่งข้อมูลที่เป็นปัจจุบันที่สุดคือชุดคู่มือที่เผยแพร่ที่http://emberjs.com/guides/ ซึ่งได้รับการเขียนขึ้นตั้งแต่ต้นในช่วงสองสามสัปดาห์ที่ผ่านมาและสะท้อนให้เห็นถึงถ่านรุ่นล่าสุด (ก่อนเผยแพร่)

ฉันยังตรวจสอบโครงการ wip ของ Trek ได้ที่นี่: https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences

แก้ไข :

@ sly7_7: ฉันจะยกตัวอย่างอื่น ๆ โดยใช้ ember-data https://github.com/dgeb/ember_data_example


1
เดิมทีฉันเขียน Code Lab เพื่อให้ผู้คนเข้ามาใช้เฟรมเวิร์ก Ember และ MVC แต่น่าเสียดายที่ฉันไม่มีเวลาที่จะรักษามันไว้ตั้งแต่นั้นมาและดูเหมือนว่ามันจะเปลี่ยนไปมากพอที่คนอื่น ๆ จะสร้างทรัพยากรที่ดีขึ้นได้ โดยส่วนตัวแล้วฉันได้เปลี่ยนมาใช้ Angular สำหรับโปรเจ็กต์ส่วนใหญ่ของฉันฉันพบว่ามันต้องใช้ JavaScript น้อยลงและง่ายกว่าที่จะห่อหัวของฉัน ตัวเลือก MVC ของคุณเป็นเรื่องส่วนตัวดังนั้นอย่าปล่อยให้ฉันทำให้คุณผิดหวัง
PeteLe

1
ไปที่emberjs.com/guidesและในขณะที่คำอธิบายทำได้ดีมาก แต่ตัวอย่างยังไม่สมบูรณ์เพียงพอที่จะเรียกใช้ตามที่เป็นอยู่และได้รับความเดือดร้อนจากการอ้างอิงไปข้างหน้าด้านความรู้ความเข้าใจซึ่งเป็นปัญหาสำหรับคนที่เข้ามาใหม่ทั้งหมด พวกเขายังคงได้รับการอัปเดตหรือมีแหล่งข้อมูลฟรีหรือไม่?
Walt Stoneburner

1
แน่นอนว่ายังคงได้รับการอัปเดต ณ วันนี้วิธีที่ดีที่สุดในการเริ่มต้นอย่างรวดเร็วคือการตรวจสอบ peepcode screencast ที่: peepcode.com/products/emberjs
Mike Grassotti

2
@MikeGrassotti มีวิธีใดบ้างที่คุณสามารถแก้ไขคำตอบของคุณเพื่อแสดงซอร์สโค้ดสำหรับเริ่มต้นใช้งาน EmberJS อาจจะแนะนำทีละขั้นตอนในการสร้างแอป "Hello World" ด้วย EmberJS?
George Stocker

2
@MikeGrassotti วิกิแท็กember.jsควรได้รับการอัปเดตเพื่อรวมคำถามและคำตอบนี้
MilkyWayJoe


4

ฉันขอแนะนำให้ใช้Yeomanและเครื่องกำเนิดถ่านที่มาพร้อมกับมัน คุณจะได้รับเครื่องมือทั้งหมดที่จำเป็นในการพัฒนาทดสอบและเตรียมแอปสำหรับการผลิตนอกกรอบ ในฐานะโบนัสเพิ่มเติมคุณจะสามารถแยกเทมเพลตมุมมองของคุณออกเป็นหลายไฟล์และเริ่มต้นด้วยโครงสร้างไดเร็กทอรีอัจฉริยะที่จะอำนวยความสะดวกให้คุณในการสร้าง codebase ที่ดูแลรักษาได้

ฉันได้เขียนบทแนะนำเกี่ยวกับการเริ่มต้นใช้งานในเวลาประมาณ 5 นาที เพียงติดตั้ง node.js แล้วทำตามที่นี่



1

อ่านบทช่วยสอนฟรีที่ชื่อว่าLet's Learn Emberจาก Tuts + Premium ฟรีเพราะมาจากfree coursesซีรีส์ของพวกเขา หลักสูตรนี้ตามที่พวก Tuts เรียกว่าแบ่งออกเป็นบทที่ง่ายต่อการปฏิบัติตามสิบสี่บท

ฉันหวังว่านี่จะช่วยได้.

ความนับถือ,


0

ฉันชอบวิธีการแบบถ่าน มันให้ของมากมายนอกกรอบ ได้แก่ :

  • สถาปัตยกรรมโฟลเดอร์ที่ดีโดยใช้วิธีการ 'โมดูล'
  • เพศ
  • รีโหลดสด
  • ลดขนาด
  • อัปลักษณ์
  • jshint

และอื่น ๆ.

และติดตั้งง่ายสุด ๆ เพียงเรียกใช้yo charcoalเพื่อสร้างแอปจากนั้นyo charcoal:module myModuleเพิ่มโมดูลใหม่

ข้อมูลเพิ่มเติมที่นี่: https://github.com/thomasboyt/charcoal


0

ฉันเพิ่งสร้าง Starter Kit หากคุณต้องการใช้ EmberJS ล่าสุดกับ Ember-Data พร้อมเอ็นจิ้นเทมเพลต Emblem ทั้งหมดอยู่ใน Middleman ดังนั้นคุณสามารถพัฒนาด้วย CoffeeScript ทุกอย่างบน GitHub ของฉัน: http://goo.gl/a7kz6y



0

ฉันได้เริ่มสร้างชุดวิดีโอที่เริ่มตั้งแต่ก่อน Ember และต่อยอดไปสู่การใช้ Ember ด้วยความโกรธในกรณีการใช้งานที่ร้ายแรงสำหรับสิ่งต่างๆในโลกแห่งความจริง

หากคุณสนใจที่จะเห็นสิ่งนี้เป็นที่นิยมในแต่ละวัน (ฉันยินดีเป็นอย่างยิ่งที่จะเผยแพร่สู่สาธารณะหากมีความสนใจในที่สุด) คุณควรไปที่โพสต์ที่ฉันสร้างขึ้นและกด "like" (หรือแสดงความคิดเห็นที่นี่ ฉันคิดว่า):

http://discuss.emberjs.com/t/making-ember-easier-to-approach-aka-crazy-screencasts-videos-that-will-stick-in-your-mind-for-learning-ember/5284

ฉันกระตือรือร้นอย่างยิ่งที่จะช่วยให้ชุมชนเจริญรุ่งเรือง แต่ยังช่วยให้ผู้คนเรียนรู้วิธีสร้างเว็บไซต์มาตรฐานด้วยวิธีง่ายๆ

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