Neil Green: Writing Custom DSLs [JSConf2014 ]

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ต.ค. 2024
  • When writing complex business logic, it is critically important to maintain clean code though the judicious applications of Test Driven Development and Domain Driven Design. However, even these powerful techniques fall short of solving the problem at the heart of building complex software: building what the customer actually wants.
    Domain Specific Languages (DSLs) allow us to capture complex business requirements in code written in the language of the customer. Once an ubiquitous language between you and your customer is defined and implemented as a DSL, the code can quite literally be given back to the customer to edit and refine. This is not a theory, or a myth. I have done this under real-world constraints and deadlines, and you can as well.
    JavaScript's ability to blend Object Oriented and Functional Programming paradigms makes it an ideal language for authoring custom DSLs. Unfortunately, too often developers are unclear on how to identify when a custom DSL is an appropriate solution, and when it is, how to go about writing one. I will take you through the process of developing a few different custom DSLs from planning to implementation, as well as how to performance tune and debug your new custom language. My hope is that you will gain a powerful tool for managing complex software that will keep you sane, and your customers happy.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 19

  • @rwells242
    @rwells242 9 ปีที่แล้ว +1

    Neil keep it up. I felt a deep sense of pride watching this.
    Will definitely be checking out your other presentations.

  • @kylesuss
    @kylesuss 10 ปีที่แล้ว +9

    Yeah that was really good -- interesting talk. Wish he posted the final DSL code somewhere so that I could read it to understand a bit more how he ended up structuring things

    • @DominicMonroe
      @DominicMonroe 9 ปีที่แล้ว +1

      Neil Green
      Do you feel like a bad egg for using eval? Where do I go from here? I saw those books, but I figured you might have a neat path to follow for research. I ended up in NLP territory.

    • @NeilonSoftware
      @NeilonSoftware 9 ปีที่แล้ว +1

      Dominic Monroe I always feel like a bad egg, or at least a black sheep. I would use document.write() if it was the most direct solution to a problem I had. API's, languages, IDEs, techniques, methodologies, and frameworks are all just tools: pick the right one for the job at hand without preference or prejudice*.
      In terms of where to go next, it depends on your interests or needs. I am an enterprise developer, so that heavily influences the way I look at the world, hence my recommendations for those books. Outside of that industry (games, operating systems, AI, etc.), I'm fairly useless, so I can't speak intelligently with regards to areas of study like NLP as a follow-on to this talk.
      * That sounded like a plug for my talk "Framework Fanboys" (devnexus.com/s/presentations#id-4702)

  • @Bliss..
    @Bliss.. 10 หลายเดือนก่อน

    you just unlocked next tier for me

  • @HartleySan
    @HartleySan 10 ปีที่แล้ว +2

    Great speaker! I actually don't have much interest in this topic, but the speaker was awesome and made this really interesting. Thanks!

    • @NeilonSoftware
      @NeilonSoftware 10 ปีที่แล้ว +3

      My next talk is on "Filling out tax forms" - we'll see if we can keep this trend going of me being more interesting than my topics!

    • @HartleySan
      @HartleySan 10 ปีที่แล้ว +2

      Neil Green Hehe. Nice! I simply meant that for people that have a vested interest in the topic, it was a great presentation. For those of us without a huge interest though, it was a very interesting and educational talk.

  • @icexiro
    @icexiro 9 ปีที่แล้ว +3

    "Is hot!" she wispered around the 26:57

    • @NeilonSoftware
      @NeilonSoftware 9 ปีที่แล้ว +2

      icexiro Clearly a ghost - now I'm going to have nightmares.

  • @zyadelkhadir8719
    @zyadelkhadir8719 3 ปีที่แล้ว

    thanks for this interesting subject, my question is about syntaxical tree, we dont need it to construct a DSL ?

  • @dimakarpov1956
    @dimakarpov1956 10 ปีที่แล้ว

    Very interesting. Thank you.

  • @NeilonSoftware
    @NeilonSoftware 9 ปีที่แล้ว +2

    Anyone who liked my talk on DSLs might also like my TypeScript vs CoffeeScript vs ES6 talk: th-cam.com/video/Ae4h9GC9cCg/w-d-xo.html

  • @bxabi0
    @bxabi0 7 ปีที่แล้ว

    nice talk, thanks

  • @NitsanAvni
    @NitsanAvni 23 วันที่ผ่านมา

    19:20
    Transcribing cost 80$ ten years ago?

  • @NuncNuncNuncNunc
    @NuncNuncNuncNunc 4 ปีที่แล้ว

    I laughed.

  • @paoloumali100
    @paoloumali100 10 ปีที่แล้ว +1

    kudos to microsoft... :)

    • @NeilonSoftware
      @NeilonSoftware 10 ปีที่แล้ว

      They were so cool (the IE 11 devs), but the audience didn't seem impressed. I needed to do something to cut the tension.