JSJ 341: Testing in JavaScript with Gil Tayar

JSJ 341: Testing in JavaScript with Gil Tayar

Panel:
  • Aimee Knight
  • AJ O’Neal
  • Charles Max Wood
Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more!Show Topics:0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous!1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now?2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React.The guest talks about Node, React, tools, and more!4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what?5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider.The guest gives hypothetical situations that people could face. 6:27 – Aimee.6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but...7:22 – Aimee: I totally agree and I could go on and on and on.7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app.I guess I just need advice in this area, I guess.8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought.10:20 – Guest: Don’t mock too much.10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that.11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite.12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff.13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database.13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing.14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition.14:47 – Guest: Write the code, and then write the tests.The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please?16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns.18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection.19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it.19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc.20:09 – Panel.20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package.20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested?21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach.24:35 – Chuck: When you say integration test what do you mean?24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time.26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter?28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools.28:39 – Aimee: Yes and no. I think some tools are outdated.28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide?29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser.The guest continues with this topic.30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them.31:21 – Aimee: I think they are focusing on mobile more.31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers.32:32 – Guest: Selenium is a Swiss knife – it can do everything.33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about?33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down?36:06 – Guest.38:30 – Chuck: You run tests against production?38:45 – Guest: Don’t run tests against production...let me clarify!39:14 – Chuck.39:21 – Guest: When I am talking about integration testing in the backend...40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend.I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too.43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months?43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this...44:40 – Guest: Frontend is so visual.45:12 – Chuck: What are you working on now?45:16 – Guest: I am working with Applitools and I was impressed with what they were doing.The guest goes into further detail.46:08 – Guest: Those screenshots are never the same.48:36 – Panel: It’s...comparing the output to the static site to the...48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Avsnitt(735)

JSJ 378: Stencil and Design Systems with Josh Thomas and Mike Hartington

JSJ 378: Stencil and Design Systems with Josh Thomas and Mike Hartington

SponsorsDatadogSentry use code “devchat” for 2 months free PanelAimee KnightChris FerdinandiJoe EamesAJ O’NealCharles Max WoodWith Special Guests: Josh Thomas and Mike HartingtonEpisode SummaryToday’s guests Josh Thomas and Mike Hartington are developers for Ionic, with Josh working on the open source part of the framework on Ionic. They talk about their new compiler for web components called Stencil. Stencil was originally created out of work they did for Ionic 4 (now available for Vue, React, and Angular) and making Ionic 4 able to compliment all the different frameworks. They talk about their decision to build their own compiler and why they decided to open source it. Now, a lot of companies are looking into using Stencil to build design systemsThe panel discusses when design systems should be implemented. Since Ionic is a component library that people can pull from and use themselves, Jeff and Mike talk about how they are using Stencil since they’re not creating a design system. The panel discusses some of the drawbacks of web components. They discuss whether or not Cordova changes the game at all. One of the big advantages of using Stencil is the code that is delivered to a browser is generated in such a way that a lot of things are handled for you, unlike in other systems.The panelists talk about their thoughts on web components and the benefits of using a component versus creating a widget the old fashioned way. One such benefit of web components is that you can change the internals of how it works without affecting the API. Josh and Mike talk about some of the abilities of Stencil and compare it to other things like Tachyons. There is a short discussion of the line between frameworks and components and the dangers of pre optimization. If you would like to learn more about Stencil, go to stenciljs.com and follow Josh and Mike @Jtoms1 and @mhartington. Click here to cast your vote NOW for JavaScript Jabber - Best Dev Podcast AwardLinksBuilding Design Systems book StencilCordovaShadow DOMTachyons Ionic 4 Follow DevChat on Facebook and Twitter PicksAimee Knight:What Does Debugging a Program Look Like?AJ O’Neal:Legend of Zelda: Link’s AwakeningNeon Genesis Evangelion soundtrackPrettierChris Ferdinandi:Kindle PaperwhiteCompany of OneCharles Max Wood:Ladders with feetLighthouseAcornsJoe Eames:Moment.jsHow To Increase Your Page Size by 1500% articleDay.jsJosh Thomas:Toy Story 4Mike Hartington:Building Design SystemsYoumightnotneed.comSpecial Guests: Josh Thomas and Mike Hartington. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

30 Juli 201952min

JSJ BONUS EPISODE: Observables and RxJS Live with Aaron Frost

JSJ BONUS EPISODE: Observables and RxJS Live with Aaron Frost

JSJ BONUS EPISODE: Observables and RxJS Live with Aaron FrostMon Jul 29 2019 13:00:56 GMT+0300 (+03) Episode Number: bonus Duration: 29:35https://media.devchat.tv/js-jabber/JSJ_Bonus_Aaron_Frost.mp3  Host: Charles Max Wood Joined by Special Guest: Aaron FrostEpisode SummaryAaron Frost joins Charles to talk about what Observables are and why developers should learn about them and use them in their code. He explains the difference between Observables, Promises and Callbacks with an example. Aaron then invites all listeners to attend the upcoming RxJS Live Conference and introduces the impressive speaker line-up. The conference will take place on September 5-6 in Las Vegas and tickets are still available. Aaron also offers a $100 discount to all listeners with the code "chuckforlife". For any questions you can DM Aaron at his Twitter account.LinksRxJS Live ConferenceRxJS Conference TicketsAaron's TwitterPromisesCallbacksSpecial Guest: Aaron Frost. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

29 Juli 201929min

JSJ 377: Bringing Maps and Location Into Your Apps with the ArcGIS API for JavaScript with Rene Rubalcava

JSJ 377: Bringing Maps and Location Into Your Apps with the ArcGIS API for JavaScript with Rene Rubalcava

SponsorsDatadog  Sentry use code “devchat” for 2 months free PanelAimee KnightAJ O’NealCharles Max WoodWith Special Guest: Rene RubalcavaEpisode SummaryRene is a software developer for ESRI and works in spatial and mapping software. ESRI has been around since 1969 and has seen their work explode since they shifted to providing address and location services. Rene talks about how he thinks about location and mapping when building software around it and things that he has to approach in unique ways. The panel discusses some of their past experiences with location software. Some of the most difficult aspects of this software is changing time zones for data and actually mapping the Earth, since it is not flat nor a perfect sphere. Rene talks about the different models used for mapping the Earth.Most mapping systems use the same algorithm as Google maps, so Rene talks about some of the specific features of ArcGIS, including the ability to finding a point within a polygon. Rene talks about what routing is, its importance, and how it is being optimized with ArcGIS, such as being able to add private streets into a regular street network.The panel discusses how the prevalence of smartphones has changed mapping and GPS and some of their concerns with privacy and location mapping. One thing ESRI is very careful about is not storing private information. Rene talks about the kinds of things he has seen people doing with the mapping and location data provided by ArcGIS, including a Smart Mapping feature for developers, mapping planets, indoor routing, and 3D models. LinksWebricate EsriArcGIS Follow DevChat on Facebook and Twitter PicksRene Rubalcava:Old Man’s War seriesAlways Be My MaybeRene’s websiteAJ O’Neal:INTLColorfulTime zones in PostgressTime zones in JavaScriptAimee Knight:Advice to Less Experienced DevelopersCharles Max Wood:Heber Half MarathonNetlify CMSVillainousFirefoxSpecial Guest: Rene Rubalcava . Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

25 Juli 201943min

JSJ 376: Trix: A Rich Text Editor for Everyday Writing with Javan Makhmali

JSJ 376: Trix: A Rich Text Editor for Everyday Writing with Javan Makhmali

Sponsors  DatadogSentry use code “devchat” for 2 months free PanelAimee KnightChris FerdinandiChristopher BeuchelerAJ O’NealWith Special Guest: Javan MakhmaliEpisode SummaryToday’s guest is Javan Makhmali, who works for Basecamp and helped develop Trix. Trix is a rich text editor for the web, made purposefully simple for everyday use instead of a full layout tool. Trix is not the same as Tiny MCE, and Javan discusses some of the differences. He talks about the benefits of using Trix over other native browser features for text editing. He talks about how Trix has simplified the work at Basecamp, especially when it came to crossing platforms. Javan talks more about how Trix differs from other text editors like Google Docs and contenteditable, how to tell if Trix is functioning correctly, and how it works with Markdown.The panel discusses more specific aspects of Trix, such as Exec command. One of the features of Trix is it is able to output consistently in all browsers and uses semantic, clean HTML instead of classnames. Javan talks about how Trix handles getting rid of the extraneous cruft of formatting when things are copy and pasted, the different layers of code, and the undo feature. He talks about whether or not there will be more features added to Trix. The panel discusses who could benefit from using Trix. The show finishes with Javan talking about Basecamp’s decision to make Trix open source and why they code in CoffeeScript. LinksTrixTiny MCEContenteditableMarkdownSVGHTMLCoffeeScript Follow DevChat on Facebook and Twitter PicksJavan Makhmali:API for form submissionsChris Ferdinandi:CSS GridAlex Russel Twitter threadHow To Live a Vibrant Life with Early Stage DementiaAJ O’Neal:Mario and ChillChip Tunes 4 Autism: CatharsisToilet AugerChristopher Beucheler: Medium to Own blogAimee Knight:Absolute Truth Unlearned as Junior DeveloperSpecial Guest: Javan Makhmali. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

23 Juli 201952min

JSJ 375: Are You Hurting the Web?

JSJ 375: Are You Hurting the Web?

SponsorsTriplebyte $1000 signing bonus Sentry use code “devchat” for 2 months free PanelCharles Max WoodAimee KnightChris FerdinandiAJ O’NealChristopher BeuchelerEpisode SummaryToday the panel discusses the effect of current development practices, such as the heavy reliance JavaScript, on the web. Chris explains why he believes that current development practices are ruining the web. The panelists discuss different situations where they see complications on the web. They discuss the advantages and disadvantages of using an enterprise scale platform like React. The panel discusses Twitter’s move away from their legacy code base to CSS and JavaScript. The panelists agree that the way things are built, since it’s so JavaScript heavy, is alienating to people who work with other languages, and in turn other areas like UI are undervalued. They talk about possible reasons things ended up this way and some of the historical perception of a frontend as not a place for ‘real’ development. Because the web is now a serious platform, things associated with the backend has been thrown at the frontend where it doesn’t belong. They talk about changes in the ways programming is viewed now versus the past. There is a discussion about how market demands that have influenced the web and if the market value CSS as highly as other languages. They mention some of the Innovations in CSS. Chris shares his solutions for the problems they’ve been discussing, namely using less JavaScript, leaning more heavily on what the browser gives you out of the box, and avoiding dependency where possible. They talk about ways to get involved if you want to take a leaner approach to the web. Ultimately, it is important to embrace things about the past that worked, but sprinkle in new technology when it makes senseLinksStimulusReactVueAppleScriptPerl.NETAngular  Follow DevChat on Facebook and Twitter PicksCharles Max Wood:Tiny Epic GalaxiesEverywhereJSAimee Knight:Complete Guide to Deep WorkChris Ferdinandi:Developer Bait and SwitchVanillajslist.com Chris will be speaking at Artifact ConferenceAJ O’Neal:Weird Al: White and NerdyQuantum board gameDeploy Sites with Only Git and SSHChristopher Beucheler:MaterialMonstressSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

18 Juli 20191h 6min

JSJ 374:  CosmosDB with Steve Faulkner LIVE at Microsoft BUILD

JSJ 374: CosmosDB with Steve Faulkner LIVE at Microsoft BUILD

SponsorsDataDogSentry use the code “devchat” for 2 months free on Sentry small planCacheFlyPanelCharles Max Wood Joined by Special Guest: Steve FaulknerEpisode SummaryComing to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Steve Faulkner. Steve is a Senior Software Developer for Azure Cosmos DB at Microsoft. Cosmos DB is a global distributed, multi-model noSQL database. Steve explains the Cosmos DB service and scenarios it can be used in. They discuss how Cosmos DB interacts with Azure functions and how partition keys work in Cosmos DB.Listen to the show for more Cosmos DB updates and to find out how Steve he got his twitter handle @southpolesteve.LinksSteve’s GitHubSteve’s TwitterSteve’s LinkedInSteve Dev.toMicrosoft Build 2019  Introduction to Azure Cosmos DBAiA 241: Azure Functions with Colby Tresness LIVE at Microsoft BUILDAiA 242- Azure Functions Part II with Jeff Hollan LIVE at Microsoft BUILDMicrosoft Learn ResourcePartitioning in Azure Cosmos DBPicksSteve Faulkner:FINAL FANTASY X/X-2 HD Remaster for Nintendo SwitchOvercooked on SteamFastlySpecial Guest: Steve Faulkner. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

16 Juli 201930min

JSJ 373: What Do You Need to Do to Get a Website Up?

JSJ 373: What Do You Need to Do to Get a Website Up?

SponsorsTriplebyte $1000 signing bonus Sentry use code “devchat” for 2 months free LinodePanelCharles Max WoodAimee KnightChris FerdinandiAJ O’NealJoe EamesEpisode SummaryToday the panel discusses what is necessary to get a website up and how complicated or simple it needs to be. They mention different tools they like for static sites and ways to manage their builds and websites. They talk about why some people choose to host their websites and at what point the heavier tools become a concern. They discuss whan it is necessary to use those heavy tools. They caution listeners to beware of premature optimization, because sometimes businesses will take advantage of newer developers and make them think they need all these shiny bells and whistles, when there is a cheaper way to do it. It is important to keep the tools you work with simple and to learn them so that if you encounter a problem, you have some context and scope. The option of serverless website hosting is also discussed, as well as important things to know about servers.The panel discusses what drives up the price of a website and if it is worth it to switch to a cheaper alternative. They discuss the pros and cons of learning the platform yourself versus hiring a developer. The importance of recording the things that you do on your website is mentioned. Several of the panelists choose to do this by blogging so that if you search for a problem you can find ones you’ve solved in the past.LinksHerokuGithub PagesNetlifyEleventyDigitalOceanLightsaleUbuntuGit cloneNode static serverSystemd scriptNGinxCloud66ThinksterGatsbyDockerGentooHow to schedule posts with a static websiteHow to set up automatic deployment with Git with a vpsAutomating the deployment of your static site with Github and Hugo Follow DevChat on Facebook and Twitter PicksCharles Max Wood:Microsoft buildAimee Knight:Systems Thinking is as Important as Ever for New CodersChris Ferdinandi:Adrian Holivadi framework videoServer Pilot AJ O’Neal:Jeff Atwood tweetMore on Stackflow ArchitectureMinioJoe Eames:Miniature painting  Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

11 Juli 201957min

JSJ 372:  Kubernetes Docker and Devops with Jessica Deen LIVE from Microsoft BUILD

JSJ 372: Kubernetes Docker and Devops with Jessica Deen LIVE from Microsoft BUILD

SponsorsTriplebyte offers a $1000 signing bonusSentry use the code “devchat” for $100 creditCacheFlyPanelCharles Max Wood Joined by Special Guest: Jessica DeenEpisode SummaryComing to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with The Deen of DevOps aka Jessica Deen. Jessica is a Senior Cloud Advocate at Microsoft. As an advocate she acts a liaison between developer communities and Microsoft to help understand developer pain points and road blocks especially in areas such as Linux, open-source technologies, infrastructure, Kubernetes, containers and DevOps. Jessica explains how to go about setting up a containerized application, Kubernetes and how to use Dockerfiles. Charles and Jessica then talk about how to get started with a Kubernetes cluster and the resources available for developers that don't have any infrastructure. Jessica advises that developers start with Azure DevOps Services and then go to Microsoft Learn Resource.Charles also encourages listeners to also check out the Views on Vue podcast Azure DevOps with Donovan Brown for further references. Jessica also recommends following people on Twitter and GitHub to find out about solutions and resources.LinksDockerfile and Windows ContainersKubernetesJessica’s GitHubJessica’s TwitterJessica’s LinkedInJessica’s WebsiteMicrosoft Build 2019Microsoft Learn ResourceHTTP application routingGetting started with Kubernetes Ingress Controllers and TLS certificatesKubernetes Ingress Controllers and Certificates: The WalkthroughAzure DevOps ServicesVoV 053: Azure DevOps with Donovan Brown LIVE at Microsoft IgniteJessica Deen YoutubeKubernetes in 5 mins – YouTubeFollow Adventures in Angular on tv, Facebook and Twitter.PicksJessica Deen:Lachlan EvensonCloud Native Computing FoundationKubernetes Handles on TwitterShoe Dog MemoirAir Jordan 4 Fire Red Gum Singles DayCharles Max Wood:Real Talk /JavaScript PodcastThe Legend of Zelda: Breath of the WildSpecial Guest: Jessica Deen. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

9 Juli 201940min

Populärt inom Business & ekonomi

framgangspodden
badfluence
varvet
rss-jossan-nina
svd-tech-brief
bathina-en-podcast
uppgang-och-fall
avanzapodden
rss-borsens-finest
rss-kort-lang-analyspodden-fran-di
rss-inga-dumma-fragor-om-pengar
dynastin
rss-dagen-med-di
fill-or-kill
kapitalet-en-podd-om-ekonomi
rss-borslunch
borslunch-2
market-makers
borsmorgon
rss-svart-marknad