Bloomberg Engineering Share Experiences of Adopting TypeScript across a Large Codebase

Rob Palmer, JavaScript infrastructure and tooling lead at Bloomberg, recently shared several learning points and insights from  the adoption of TypeScript at scale at Bloomberg. While some learning points are specific to Bloomberg’s custom runtime, others may be valuable across any large codebase switching to TypeScript.

Palmer explained that Bloomberg Engineering followed a thoughtful process to migrate to TypeScript due to the scale of its existing JavaScript codebase. The Bloomberg terminal contains more than 10,000 applications. Bloomberg’s JavaScript codebase has over 50 million lines of code. 2,000 software engineers are writing JavaScript.

Bloomberg has its own JavaScript runtime environment and platform, built on the V8 engine and Chromium. Bloomberg’s custom runtime directly supports TypeScript. It strives to provide a standardized, streamlined experience to Bloomberg developers. Palmer elaborated:

Our platform supports an internal ecosystem of packages that uses a common tooling and publishing system. This allows us to encourage and enforce best practices, such as defaulting to TypeScript’s “strict mode”, as well as ensuring global invariants. For example, we guarantee that all published types are modular rather than global. It also means that engineers can focus on writing code rather than needing to figure out how to make TypeScript play nicely with a bundler or test framework. DevTools and error stacks use sourcemaps correctly. Tests can be written in TypeScript and code coverage is accurately expressed in terms of the original TypeScript code. It just works.

The migration process sought to stick to standards (such as ECMAScript), keep development productivity high even as the TypeScript codebase grows, and ensure that packages efficiently work together. Palmer shared 10 learning points that accumulated over time. Some of those may apply to any codebase migrating to TypeScript. Others relate to Bloomberg’s specific TypeScript adoption strategy.

One generally applicable learning point is to use the parts of the TypeScript specifications that do not contradict future JavaScript features and focus on adding typing information. The alignment with standard ECMAScript syntax and runtime semantics means that TypeScript language features that are not a type-level extension of JavaScript — enumnamespace, parameter properties, or  TypeScript decorators, should be avoided. The TypeScript decorator semantics are for instance incompatible with the JavaScript  class fields proposal (Stage 3, i.e. nearing adoption in the JavaScript language standard). The MobX state management library recently released a  new version that instead aligns with the  new JavaScript decorators proposal (Stage 2).

#javascript #typescript #architecture & design #development

What is GEEK

Buddha Community

Bloomberg Engineering Share Experiences of Adopting TypeScript across a Large Codebase

Bloomberg Engineering Share Experiences of Adopting TypeScript across a Large Codebase

Rob Palmer, JavaScript infrastructure and tooling lead at Bloomberg, recently shared several learning points and insights from  the adoption of TypeScript at scale at Bloomberg. While some learning points are specific to Bloomberg’s custom runtime, others may be valuable across any large codebase switching to TypeScript.

Palmer explained that Bloomberg Engineering followed a thoughtful process to migrate to TypeScript due to the scale of its existing JavaScript codebase. The Bloomberg terminal contains more than 10,000 applications. Bloomberg’s JavaScript codebase has over 50 million lines of code. 2,000 software engineers are writing JavaScript.

Bloomberg has its own JavaScript runtime environment and platform, built on the V8 engine and Chromium. Bloomberg’s custom runtime directly supports TypeScript. It strives to provide a standardized, streamlined experience to Bloomberg developers. Palmer elaborated:

Our platform supports an internal ecosystem of packages that uses a common tooling and publishing system. This allows us to encourage and enforce best practices, such as defaulting to TypeScript’s “strict mode”, as well as ensuring global invariants. For example, we guarantee that all published types are modular rather than global. It also means that engineers can focus on writing code rather than needing to figure out how to make TypeScript play nicely with a bundler or test framework. DevTools and error stacks use sourcemaps correctly. Tests can be written in TypeScript and code coverage is accurately expressed in terms of the original TypeScript code. It just works.

The migration process sought to stick to standards (such as ECMAScript), keep development productivity high even as the TypeScript codebase grows, and ensure that packages efficiently work together. Palmer shared 10 learning points that accumulated over time. Some of those may apply to any codebase migrating to TypeScript. Others relate to Bloomberg’s specific TypeScript adoption strategy.

One generally applicable learning point is to use the parts of the TypeScript specifications that do not contradict future JavaScript features and focus on adding typing information. The alignment with standard ECMAScript syntax and runtime semantics means that TypeScript language features that are not a type-level extension of JavaScript — enumnamespace, parameter properties, or  TypeScript decorators, should be avoided. The TypeScript decorator semantics are for instance incompatible with the JavaScript  class fields proposal (Stage 3, i.e. nearing adoption in the JavaScript language standard). The MobX state management library recently released a  new version that instead aligns with the  new JavaScript decorators proposal (Stage 2).

#javascript #typescript #architecture & design #development

The Definitive Guide to TypeScript & Possibly The Best TypeScript Book

TypeScript Deep Dive

I've been looking at the issues that turn up commonly when people start using TypeScript. This is based on the lessons from Stack Overflow / DefinitelyTyped and general engagement with the TypeScript community. You can follow for updates and don't forget to ★ on GitHub 🌹

Reviews

  • Thanks for the wonderful book. Learned a lot from it. (link)
  • Its probably the Best TypeScript book out there. Good Job (link)
  • Love how precise and clear the examples and explanations are! (link)
  • For the low, low price of free, you get pages of pure awesomeness. Chock full of source code examples and clear, concise explanations, TypeScript Deep Dive will help you learn TypeScript development. (link)
  • Just a big thank you! Best TypeScript 2 detailed explanation! (link)
  • This gitbook got my project going pronto. Fluent easy read 5 stars. (link)
  • I recommend the online #typescript book by @basarat you'll love it.(link)
  • I've always found this by @basarat really helpful. (link)
  • We must highlight TypeScript Deep Dive, an open source book.(link)
  • Great online resource for learning. (link)
  • Thank you for putting this book together, and for all your hard work within the TypeScript community. (link)
  • TypeScript Deep Dive is one of the best technical texts I've read in a while. (link)
  • Thanks @basarat for the TypeScript Deep Dive Book. Help me a lot with my first TypeScript project. (link)
  • Thanks to @basarat for this great #typescript learning resource. (link)
  • Guyz excellent book on Typescript(@typescriptlang) by @basarat (link)
  • Leaning on the legendary @basarat's "TypeScript Deep Dive" book heavily at the moment (link)
  • numTimesPointedPeopleToBasaratsTypeScriptBook++; (link)
  • A book not only for typescript, a good one for deeper JavaScript knowledge as well. link
  • In my new job, we're using @typescriptlang, which I am new to. This is insanely helpful huge thanks, @basarat! link
  • Thank you for writing TypeScript Deep Dive. I have learned so much. link
  • Loving @basarat's @typescriptlang online book basarat.gitbooks.io/typescript/# loaded with great recipes! link
  • Microsoft doc is great already, but if want to "dig deeper" into TypeScript I find this book of great value link
  • Thanks, this is a great book 🤓🤓 link
  • Deep dive to typescript is awesome in so many levels. i find it very insightful. Thanks link
  • @basarat's intro to @typescriptlang is still one of the best going (if not THE best) link
  •  
  • This is sweet! So many #typescript goodies! link

Get Started

If you are here to read the book online get started.

Translations

Book is completely free so you can copy paste whatever you want without requiring permission. If you have a translation you want me to link here. Send a PR.

Other Options

You can also download one of the Epub, Mobi, or PDF formats from the actions tab by clicking on the latest build run. You will find the files in the artifacts section.

Special Thanks

All the amazing contributors 🌹

Share

Share URL: https://basarat.gitbook.io/typescript/

Author: Basarat
Source Code: https://github.com/basarat/typescript-book/ 
License: View license

#typescript #opensource 

How much does it cost to build a video sharing app?

There are so many things you can do with your mobile phone, regardless of which operating system you use. Your smartphone is a miniature computer, which means you can use it to browse the web, stream music and download apps galore. You can also share videos with certain apps. There is no doubt that video, editing, recording, and sharing application development will give a wholesome solution to your app users and will help you make your application stand out from the competitors.

Are you searching for the app development company who build video sharing app? If yes then AppClues Infotech is the best mobile app development company offer world-class mobile app development services at competitive prices across all major mobile platforms for start-ups as well as enterprises. Our team of professional designers and developers can proficiently develop a video sharing mobile app tailored to your needs, to help you achieve the end result of your business gaining more market autonomy.

Our Expertise in Mobile App Development:

  • iPhone App Development
  • iPad App Development
  • Apple Watch App Development
  • Flutter App Development
  • Android App Development
  • Ionic App Development
  • React Native App Development
  • Windows App Development
  • Cross-Platform App Development

We offer custom social networking app development solutions which are designed to not just make your brand a household name but also to keep your brand above the ever-growing crowd of entertainment mobile apps. We build mobile apps across various industry verticals including travel, social networking, restaurant, real estate, health care, news, etc.

The expense of video sharing app development depends on app size, app platform, app functionality, what features you require, the team of app developers, etc. So generally cost is in between $2,000 - 15,000. It can vary from app to app because every app has different requirements.

#video sharing app development #best video sharing app development company #top video sharing app development company #make a video sharing mobile app #cost to create a video sharing app

Sagar Shende

Sagar Shende

1600355245

How to Use Shared Preferences to Stored Data in Flutter | Shared preferences Flutter

Shared preferences flutter is for Storing simple data on Device for Reading & writing Simple Key-value pairs in iOS & Android.

In Simple Example, Let Just Say You Just Want to Stored Simple Data on Phone And Later You can refer that Data whenever You Launch that App then Shared preferences will help you to Stored data on the Phone.

Shared preferences in flutter NSUserDefaults on iOS & macOS, and SharedPreferences on Android.

💻Shared Preferences:- https://alltechsavvy.com/shared-preferences-flutter/

👩‍💻Github Code: https://github.com/sagarshende23/shared_preference_flutter

#shared #flutter #shared preferences flutter #shared preferences

CodingNepal .

CodingNepal .

1617797839

Popup Share Modal UI Design using HTML CSS & JavaScript

#css share modal #modal dialog box #popup share modal #share modal #share modal in javascript