Building an enterprise-grade app with AngularJS

Comments

Comments are closed.

Link to my slides http://dpashkevich.github.io/pres-enforcingstandards/

Anonymous at 13:47 on 8 May 2015

I was expecting a little more advanced discussion of angular, what mistakes they made and what they learned from them, suggestions and tips on best practices etc. Instead the talk was mostly going after abstract concepts of what angular js is capable of and what its not. I didn't come away having learned anything beyond what I learned in watching angulars 5 min intro to angular video.

Anonymous at 14:40 on 8 May 2015

I didn't like this one as much. I expected more enterprise level info. seemed more like an overview of setting up an angular app with even less information. 5/10, would skip over this one.

Huh. This was one of my top two or three talks at OpenWest. Admittedly I am pretty new to Angular, but I was really impressed by how organized and elegant the app he was showing was (at least, the code we were able to see). It definitely made me more excited about Angular, and I can think of several best practices and pitfalls he went over, but I guess the other commenters already knew those ones... sorry Dmitry I thought it was a great talk and you're a very good speaker.

P.S. I just went to check out the slides again and that is not the right link.

Thanks for everyone's feedback so far!

First, here's the correct link to the slides: http://dpashkevich.github.io/pres-lucid-angular/

I understand that the title of the talk may have set a different expectation for some listeners. I do have to say that our approach to building the app I was talking about was exactly how I outlined it: start small, refactor code as it grows, and try not to spend too much time thinking of what "the right way is" and/or arguing around terminology. I also tried to avoid walking through large pieces of code that often ends up being boring if you don't have enough context. Lastly, while our app handle massive amounts of data, the code isn't too complex, and I personally think it's great that we didn't overthink the front-end architecture.

That said, I agree that I could've found a way to talk more about our experience and less about Angular itself. @commenters: if possible, can you suggest the kinds of "advanced" or "enterprise-level" things you expected to hear at the talk? I would love to improve it in the future.

I liked this talk, it was interesting. However, I agree with some of the other commenters. When it came to addressing difficult issues, the details were glossed over or dismissed. Came away wanting.

Anonymous at 20:38 on 10 May 2015

Agree with everyone else. There were already WAY too many "Intro to Angular" type talks at this conference. No need for another. And when you put "Enterprise-Grade" in the title, we're expecting a more advanced discussion about enterprise-level optimizations and scaling tips. Instead we got an extremely watered down introduction to Angular 1, with no comments whatsoever about the massive changes the framework is about to undergo. Maybe would have made sense for OpenWest 2010, but not a very valuable presentation for this day and age.

> And when you put "Enterprise-Grade" in the title, we're expecting a more advanced discussion about enterprise-level optimizations and scaling tips. Instead we got an extremely watered down introduction to Angular 1, with no comments whatsoever about the massive changes the framework is about to undergo.

We did ship an enterprise app. We didn't really need to apply any heavy optimizations to the front-end code written in Angular. We thought we would, but we didn't need to. It just worked. I think that illustrates that Angular is a great tool for both small and large projects, and unlike many large monolithic frameworks (think ExtJS), there's actually very little boilerplate/configuration to be done to get something running. I think many people worry too much about the problems they don't end up having (premature optimization). That was one of the messages I tried to send. I did do an overview of the components that we had to implement ourselves in order to actually ship our app.

When I read "enterprise-grade app" and "100-line demos" and "code base remains maintainable" I was expecting some tips on how to organize and manage a very large AngularJS project. I'm currently working on transitioning a very large one page app to Angular and these are some of the questions I have:

- What are some good ways of organizing files in a very large Angular app?
- Is there a size at which lazy loading of code starts to make sense? How and why would you incorporate AMD/CommonJS?
- If you aren't going to lazy load, would it make sense to break a large one page app into multiple smaller one page apps? How to organize this.
- How to effectively route a very large app. How does that change if your very large app is actually a collection of smaller apps?
- How to best modularize the code to share as much as possible across projects. How to manage modularized projects.
- When to use directives instead of composed controllers/views. Managing large numbers of one vs the other.

Like others, much of the first part of the talk was old information for me and I tuned out. The end had some useful thoughts. Not necessarily novel, but they applied well to the problems I wanted to address with this topic. For example: start small and release often, don't optimize prematurely, use tools that will help in refactoring (Clojure in their case).

Ultimately, enterprise in this case meant 20,000 lines of data in a table, not 50 different views in a one page app with potentially 100s of directives.

This was okay but was distracted a little by the pacing back and forth in front of the slides.