ฝึกพูดภาษาอังกฤษด้วยเทคนิค Shadowing จากวิดีโอ: What are Design Patterns? | Introduction to Design Patterns and Principles | Geekific

กำลังสร้างบทเรียน...
1
What's up geeks and welcome to the channel! If you're in the computer science domain you definitely have heard of design patterns before or even used a few patterns in practice with or without your knowledge but really what are design patterns?
2
why were they created in the first  place and who decided to create them?
3
what is actually the main  purpose behind design patterns?
4
all these questions and more will be answered  in this first video of our design pattern series to which later we will add more videos  detailing each pattern on its own.
5
As always and to better understand  the concept at hand let's take a practical example and let's imagine a steak. You see I may have imagined a well done steak you may have imagined a medium done one someone else might have imagined a vegan steak, while ordering a steak at a restaurant,  each one of us orders it differently we don't all necessarily have to  order or eat our steak the same way and yet the cook that is preparing it, will take the same piece of  meat or soy in addition to the way or policy of how we like our steak and prepare a delicious meal a different one for each one of us using the same  piece of meat as a starting point To compare this to a computer program suppose  we have a Chef class with a prepare() method This method can take a WellDoneInstruction  object and in this prepare method the chef will know how to prepare a well-done steak but what about other ways of preparing a steak we will have to overload this method to take in  a MediumDoneInstruction and a VeganInstruction Okay now our chef knows how  to cook all the steaks we want Let's say this chef extended his knowledge and  now knows of five additional ways to cook a steak should we add five more methods? Well let me suggest something else, why not replace all these methods with a single  method that takes a steak cooking instruction and let all these classes inherit  this one what do you think?
6
Isn't that a better design for our Chef class You see this way, our class is closed  for modification and open for extension which means that not only we won't  have to add any more methods nor even touch our Chef class in the future but in addition to this when a new instruction is needed all we have to do is extend the SteakCookingInstruction class  we created with this new instruction and the prepare method will  handle it automatically Now because of our design, this chef  apparently skyrocketed and decided to open a new branch for the restaurant So every time a new customer enters the restaurant the chef goes ahead and informs them  of the opening date and details for the new branch but do you think that is the best  approach to deal with such a scenario?
7
Don't you think that instead of  waiting for people to come in the chef should have instead messaged  all his customers the details about the opening or even posted on social media and those interested would have showed up wouldn't his reach be far larger? In both previous scenarios the solutions I suggested hint at a specific pattern this pattern will not actually solve our problem and generate magically ready code for us but rather it will give us a description or template to follow a way of thinking  that will help us solve these problems like a series of formalized best practices, steps  that programmers have followed and used to solve common problems like the one we just encountered. Design Patterns best became known from the design patterns book by Erich Gamma, Richard  Helm, Ralph Johnson, and John Vlissides often referred to as the Gang of  Four book published in the mid 90s.
8
Now, this book details 23 design patterns  which were split into three groups: Creational Patterns, Structural  Patterns, and Behavioral Patterns.
9
Creational patterns deal  with the creation of objects Instead of you instantiating all  objects very specifically and explicitly they give you more flexibility  in how the objects are actually created Let's suppose that we have  a class with 10 attributes but not every time we create an object based on  this class we need to specify all 10 attributes sometimes you only need one, in other cases  three or two, and sometimes eight or nine, in such cases we are left with two  solutions and not quite the best out there: either to create a lot, like a lot, of  overloaded constructors for our class or create one constructor that takes  all arguments but then we will need to pass as null values the ones we don't  require upon creation of our objects Well, design patterns will tell  you wait, you have a third option follow the template provided  by the Builder Pattern, a template widely used and tested  by many developers out there Well if I were in your shoes  I'd pick this last option.
10
Structural patterns deal with  how classes are actually designed with how things like inheritance  and composition and aggregation can be used to provide extra functionality Let's consider that in our application we are storing book objects and these books well there's too many of them, like in the hundred thousand books of a library, or the books in all of amazon online store, and for some reason we need to represent each book by an object You see in this case we will have a bunch of book objects that will share the same attributes and by bunch I mean in the thousands which will have the same author, the same amazon  physical storage location, same places it can be delivered to, same provider, etc. you got the idea and maybe the only attribute that will defer is the title itself and the price in some cases So why create for each book an object and consume all this amount of memory while at the same time if we follow the template specified by the Flyweight Pattern we will be able to minimize memory usage by sharing as much data as possible  between our similar objects You see that is what design  patterns are trying to do they are trying to provide us with a schema, a step-by-step definition or template to help us overcome development or architectural  problems that others have faced before us.
11
Finally, Behavioral patterns are specifically  concerned with communication and assignment of responsibilities between  objects as the program is running The two examples we gave at the beginning  of our video can actually be solved using two different behavioral patterns one of them being the Strategy pattern Let's take a second example and  suppose we realized that the state of an object in our application will  be changed by a lot of other objects but we need to be able to undo the last change Well this can be done in many different ways and you are free to use any of them but there is a Memento design pattern that describes a simple proven approach. So to sum up, design patterns will speed up your development process by providing  tested and proven development models At first you may not notice that you require  the use of this pattern here or there or you may make use of it without even knowing but with time practice and hopefully with the help of our videos you will! So that's it for this video, I hope it was helpful, thank you guys for watching,  take care and I will see you in the next one!

คำศัพท์และข้อสังเกตด้านการพูดสำหรับบทเรียนนี้

บทเรียนฝึกพูดระดับ C1 นี้ใช้วิดีโอ “What are Design Patterns?” เป็นสื่อ คำที่ถูกพูดซ้ำบ่อยที่สุด: pattern, object, design, steak, chef วิดีโอนี้มี 11 ประโยค และ 1284 คำ สำหรับฝึกพูดตาม ช่วงที่มีเสียงพูดยาว 7:17 ผู้พูดพูดด้วยความเร็วเป็นธรรมชาติ ประมาณ 176 คำต่อนาที ใกล้เคียงกับบทสนทนาในชีวิตประจำวัน 85% ของคำอยู่ใน 3,000 คำที่ใช้บ่อยที่สุดในภาษาอังกฤษ ส่วนที่เหลือควรดูไว้ก่อนเริ่มฝึก จากทั้งหมด 11 ประโยค มี 7 ประโยคเป็นคำถาม จึงเหมาะสำหรับฝึกน้ำเสียงประโยคคำถามและการตอบสั้น ๆ

คำศัพท์สำคัญในวิดีโอนี้

คำที่ยากที่สุด 10 คำในวิดีโอ พร้อมคำอ่านและความหมาย:

คำศัพท์คำอ่านความหมาย
steak คำนาม/steɪk/สเต็ก, สเต๊ก
template คำนาม/ˈtɛm.plɪt/แม่แบบ
attribute คำนาม/ˈæt.ɹɪˌbjut/คุณลักษณะ, คุณสมบัติ
specify คำกริยา/ˈspɛs.əˌfaɪ/ระบุ
programmer คำนาม/ˈpɹoʊɡɹæmɚ/โปรแกรมเมอร์, ผู้เขียนโปรแกรม
minimize คำกริยา/ˈmɪn.ɪˌmaɪz/ย่อ
inheritance คำนาม/ɪnˈhɛɹɪtəns/มรดก
consume คำกริยา/kənˈsum/อุปโภค, ใช้
flexibility คำนาม/ˌflɛksɪˈbɪlɪti/ความยืดหยุ่น
hint คำนาม/hɪnt/คำใบ้

กริยาวลีที่คุณจะได้ยิน

คำศัพท์ความหมาย
show up คำกริยาโผล่

ไวยากรณ์ในวิดีโอนี้

โครงสร้างที่ผู้พูดใช้บ่อยที่สุด พร้อมคำพูดจริงจากวิดีโอ:

โครงสร้างในวิดีโอ
ประโยคเงื่อนไข if + อนุประโยค, will/would + กริยา — เงื่อนไขและผลลัพธ์if I were in your shoes I'd pick
Passive voice be + กริยาช่อง 3 — เน้นสิ่งที่เกิดขึ้น ไม่ใช่ผู้กระทำwill be answered · is closed · were split
Present perfect have/has + กริยาช่อง 3 — เหตุการณ์ในอดีตที่ยังเกี่ยวข้องกับปัจจุบันhave heard · have followed · have faced
Relative clauses who / which + อนุประโยค — ข้อมูลเพิ่มเติมเกี่ยวกับคนหรือสิ่งของextension which means · patterns which were · thousands which will

การออกเสียงที่ควรระวัง

ผู้พูดใช้รูปย่อและรูปลดเสียง 8 ครั้ง เช่น don't, I'd, isn't ให้พูดแบบสั้นตามที่ได้ยิน

  • เสียง “sh” และ “zh”: aggregation /æɡɹəˈɡeɪʃən/, instantiate /ɪnˈstænʃieɪt/, modification /ˌmɑdɪfɪˈkeɪʃən/
  • คำยาว — ลงเสียงหนักให้ถูกพยางค์: behavioral /bɪˈheɪvjəɹəl/, aggregation /æɡɹəˈɡeɪʃən/, modification /ˌmɑdɪfɪˈkeɪʃən/, inheritance /ɪnˈhɛɹɪtəns/, architectural /ˌɑɹkɪˈtɛkt͡ʃəɹəl/

เสียงที่คนไทยมักออกเสียงยาก:

  • เสียงท้ายคำ — ออกเสียงให้ครบ ไม่เปลี่ยนเป็นตัวสะกดแบบไทย: behavioral /bɪˈheɪvjəɹəl/, formalize /ˈfɔɹ.məlaɪːz/, null /nʌl/, minimize /ˈmɪn.ɪˌmaɪz/, inheritance /ɪnˈhɛɹɪtəns/
  • /v/ — ไม่ใช่ /w/ ให้ฟันบนแตะริมฝีปากล่าง: behavioral /bɪˈheɪvjəɹəl/, overload /ˌəʊvəˈləʊd/, vegan /ˈviːɡən/
  • /z/ — เสียงก้อง ไม่ใช่ /s/: formalize /ˈfɔɹ.məlaɪːz/, minimize /ˈmɪn.ɪˌmaɪz/

วิธีฝึกกับวิดีโอนี้

  1. ฟังวิดีโอให้จบหนึ่งรอบโดยยังไม่ต้องพูด แล้วจดคำที่ยังไม่รู้จัก
  2. เริ่มที่ความเร็ว 0.75× พูดตามทีละประโยค แล้วกลับไปใช้ความเร็วปกติเมื่อเริ่มคล่อง
  3. อัดเสียงตัวเองแล้วเทียบกับต้นฉบับ โดยสังเกตคำอย่าง steak, template, attribute เป็นพิเศษ

เทคนิค Shadowing คืออะไร?

Shadowing เป็นเทคนิคการเรียนรู้ภาษาที่ได้รับการรับรองทางวิทยาศาสตร์ พัฒนาขึ้นสำหรับการฝึกนักแปลมืออาชีพ วิธีการนี้เรียบง่ายแต่ทรงพลัง: คุณฟังเสียงภาษาอังกฤษจากเจ้าของภาษาและพูดตามทันที — เหมือนเงาที่ตามผู้พูดด้วยช่วงเวลาห่าง 1-2 วินาที การวิจัยแสดงว่าเทคนิคนี้ปรับปรุงความแม่นยำในการออกเสียง ทำนองเสียง จังหวะ การเชื่อมเสียง การฟังเข้าใจ และความคล่องแคล่วในการพูดได้อย่างมีนัยสำคัญ

เทคนิค shadowing: อ่านคู่มือฉบับเต็มทีละขั้นตอน →