Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UGBojan Veljanovski
At its core, engineering is the art of decomposing big problems into smaller ones so that are easier to be understood, communicated and tackled.
The traditional n-tier approach to building a feature is to break it down into several layers. By building it as such there is high risk of over-engineering each layer individually to ensure that the next dependable layer has everything it needs. This way, there is high potential for introducing non-necessary complexity.
By slicing through the layers, and building features in “vertical slices” the complexity gets as big as the individual feature needs it to be, isolated from other parts of the system.
In this session I’ll explain and demo how to simplify a horizontal-layered system towards vertical-sliced one, by employing principles and practices such as SRP and CQS.
Domain Driven Design with Onion Architecture is a powerful combination of Architecture Patterns that can dramatically improve code quality and can help you learn a great deal about writing "clean" code.
Unlock the Power of Streaming Data with Kinetica and Confluent Platformconfluent
Speakers: Mathew Hawkins, Principal Solution Engineer, Kinetica + Chong Yan, Solutions Architect, Confluent
The volume, complexity and unpredictability of streaming data is greater than ever before. Innovative organizations require instant insight from streaming data in order to make real-time business decisions. A new technology stack is emerging as traditional databases and data lakes are challenged to analyze streaming data and historical data together in real time.
Confluent Platform, a more complete distribution of Apache Kafka®, works with Kinetica’s GPU-accelerated engine to transform data on the wire, instantly ingest data and analyze it at the same time. With the Kinetica Connector, end users can ingest streaming data from sensors, mobile apps, IoT devices and social media via Kafka into Kinetica’s database to combine it with data at rest. Together, the technologies deliver event-driven and real-time data to power the speed of thought analytics, improve customer experience, deliver targeted marketing offers and increase operational efficiencies.
Register for this webinar to see:
-How Kinetica enables businesses to leverage the streaming data delivered with Confluent Platform to gain actionable insights
-How to leverage the Kafka Connect API to integrate data sources and destinations without writing cumbersome code
-A KSQL demo showcasing an end-to-end flow of the complete data pipeline from a live source, to KSQL and finally into Kinetica
Watch the recording: https://videos.confluent.io/watch/HdTKREFJzt6VcefneC4C7H?.
Vertical Slices in .NET - Bojan Veljanovski, March 2016, MK.NET UGBojan Veljanovski
At its core, engineering is the art of decomposing big problems into smaller ones so that are easier to be understood, communicated and tackled.
The traditional n-tier approach to building a feature is to break it down into several layers. By building it as such there is high risk of over-engineering each layer individually to ensure that the next dependable layer has everything it needs. This way, there is high potential for introducing non-necessary complexity.
By slicing through the layers, and building features in “vertical slices” the complexity gets as big as the individual feature needs it to be, isolated from other parts of the system.
In this session I’ll explain and demo how to simplify a horizontal-layered system towards vertical-sliced one, by employing principles and practices such as SRP and CQS.
Domain Driven Design with Onion Architecture is a powerful combination of Architecture Patterns that can dramatically improve code quality and can help you learn a great deal about writing "clean" code.
Unlock the Power of Streaming Data with Kinetica and Confluent Platformconfluent
Speakers: Mathew Hawkins, Principal Solution Engineer, Kinetica + Chong Yan, Solutions Architect, Confluent
The volume, complexity and unpredictability of streaming data is greater than ever before. Innovative organizations require instant insight from streaming data in order to make real-time business decisions. A new technology stack is emerging as traditional databases and data lakes are challenged to analyze streaming data and historical data together in real time.
Confluent Platform, a more complete distribution of Apache Kafka®, works with Kinetica’s GPU-accelerated engine to transform data on the wire, instantly ingest data and analyze it at the same time. With the Kinetica Connector, end users can ingest streaming data from sensors, mobile apps, IoT devices and social media via Kafka into Kinetica’s database to combine it with data at rest. Together, the technologies deliver event-driven and real-time data to power the speed of thought analytics, improve customer experience, deliver targeted marketing offers and increase operational efficiencies.
Register for this webinar to see:
-How Kinetica enables businesses to leverage the streaming data delivered with Confluent Platform to gain actionable insights
-How to leverage the Kafka Connect API to integrate data sources and destinations without writing cumbersome code
-A KSQL demo showcasing an end-to-end flow of the complete data pipeline from a live source, to KSQL and finally into Kinetica
Watch the recording: https://videos.confluent.io/watch/HdTKREFJzt6VcefneC4C7H?.
This presentation distills the best industry guidance into a hands-on approach to designing application architectures. Along the way, we'll examine the key decisions that must be made when choosing our architectural styles and designing our layers and show how those decisions turn into real shippable code on a project.
This is a 40 minutes about introduction to Integration & Microservices and how companies are using and built their APIs for products integration and why? We will learn about integration concepts and APIs types by examples and discuss list of market products and discuss data transformation.
Youtube Video by the end of presentation.
https://youtu.be/WRM7SyX9HO4
Link
https://wp.me/p8BMmp-mC
In addition to the traditional languages such as COBOL, C++, and PL/I, there are multiple modern languages that are being adopted by developers worldwide. Java, C++, JavaScript, Go and Swift are enriching the server ecosystem, and they each offer different capabilities. This session will provide an overview of the trends in modern programing languages and how enterprise clients are using them. The discussion will focus on some of the newest languages: Go and Swift, and the efforts made by IBM to bring those languages to the server and cloud platforms.
visit http://www-03.ibm.com/systems/z/solutions/enterprise-devops/
The new RAML 1.0 specification provides new features and additional flexibilty that makes it easier to design and create great APIs. In this session we will review some best practices for RESTful APIs and show how to add these features to your own APIs using the RAML specification. We will also cover common design patterns and address FAQs such as how to use annotations and add metadata to APIs.
Architecting Database by Jony Sugianto (Detik.com)Tech in Asia ID
Jony Sugianto is a Research Engineer at Detikcom, an online news and article website based in Indonesia.
This slide was shared on TIA DevTalk: "How to Not Fail in Database” on 18 February 2016.
TIA DevTalk is a monthly event of TIA Dev Community-- a community for all developers and/ or engineer to create collaborative things that advanced the tech community and ecosystem.
Get updates about our dev events delivered straight to your inbox by signing up here: http://bit.ly/tia-dev ! Be the first to know when new information is available!
This presentation distills the best industry guidance into a hands-on approach to designing application architectures. Along the way, we'll examine the key decisions that must be made when choosing our architectural styles and designing our layers and show how those decisions turn into real shippable code on a project.
This is a 40 minutes about introduction to Integration & Microservices and how companies are using and built their APIs for products integration and why? We will learn about integration concepts and APIs types by examples and discuss list of market products and discuss data transformation.
Youtube Video by the end of presentation.
https://youtu.be/WRM7SyX9HO4
Link
https://wp.me/p8BMmp-mC
In addition to the traditional languages such as COBOL, C++, and PL/I, there are multiple modern languages that are being adopted by developers worldwide. Java, C++, JavaScript, Go and Swift are enriching the server ecosystem, and they each offer different capabilities. This session will provide an overview of the trends in modern programing languages and how enterprise clients are using them. The discussion will focus on some of the newest languages: Go and Swift, and the efforts made by IBM to bring those languages to the server and cloud platforms.
visit http://www-03.ibm.com/systems/z/solutions/enterprise-devops/
The new RAML 1.0 specification provides new features and additional flexibilty that makes it easier to design and create great APIs. In this session we will review some best practices for RESTful APIs and show how to add these features to your own APIs using the RAML specification. We will also cover common design patterns and address FAQs such as how to use annotations and add metadata to APIs.
Architecting Database by Jony Sugianto (Detik.com)Tech in Asia ID
Jony Sugianto is a Research Engineer at Detikcom, an online news and article website based in Indonesia.
This slide was shared on TIA DevTalk: "How to Not Fail in Database” on 18 February 2016.
TIA DevTalk is a monthly event of TIA Dev Community-- a community for all developers and/ or engineer to create collaborative things that advanced the tech community and ecosystem.
Get updates about our dev events delivered straight to your inbox by signing up here: http://bit.ly/tia-dev ! Be the first to know when new information is available!
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...Command Prompt., Inc
Jeff Davis
I'll be showing how the extensible pieces of PostgreSQL fit together to give you the full power of native functionality -- including performance. These pieces, when combined, make PostgreSQL able to do almost anything you can imagine. A variety add-ons have been very successful in PostgreSQL merely by using this extensibility. Examples in this talk will range from PostGIS (a GIS extension for PostgreSQL) to DBI-Link (manage any data source accessible via perl DBI).
The benefit of sneezing code into an editor vs clean codeDave Hulbert
Balancing technical debt and getting things done is one of the hardest problems we have. When should we write beautiful, elegant, clean code and when should we just hammer away blindly at the keyboard until it's done? This talk goes in to why this balance is so difficult and covers everything from estimations to refactoring and testing, with a focus on real world PHP apps.
Netflix - Pig with Lipstick by Jeff Magnusson Hakka Labs
In this talk Manager of Data Platform Architecture Jeff Magnusson from Netflix discusses Lipstick, a tool that visualizes and monitors the progress and performance of Apache Pig scripts. This talk was recorded at Samsung R&D.
While Pig provides a great level of abstraction between MapReduce and dataflow logic, once scripts reach a sufficient level of complexity, it becomes very difficult to understand how data is being transformed and manipulated across MapReduce jobs. The recently open sourced Lipstick solves this problem. Jeff emphasizes the architecture, implementation, and future of Lipstick, as well as various use cases around using Lipstick at Netflix (e.g. examples of using Lipstick to improve speed of development and efficiency of new and existing scripts).
Jeff manages the Data Platform Architecture group at Netflix where he is helping to build a service oriented architecture that enables easy access to large scale cloud based analytical processing and analysis of data across the organization. Prior to Netflix, he received his PhD from the University of Florida focusing on database system implementation.
Slides from the Big Data Gurus meetup at Samsung R&D, August 14, 2013
This presentation covers the high level architecture of the Netflix Data Platform with a deep dive into the architecture, implementation, use cases, and future of Lipstick (https://github.com/Netflix/Lipstick) - our open source tool for graphically analyzing and monitoring the execution of Apache Pig scripts.
Netflix uses Apache Pig to express many complex data manipulation and analytics workflows. While Pig provides a great level of abstraction between MapReduce and data flow logic, once scripts reach a sufficient level of complexity, it becomes very difficult to understand how data is being transformed and manipulated across MapReduce jobs. To address this problem, we created (and open sourced) a tool named Lipstick that visualizes and monitors the progress and performance of Pig scripts.
Joseph Price, a software engineer at The Huffington Post gave a talk about the basics of Scala. These slides are a great resource for anyone who's interested in learning more about Scala. PHP knowledge is not required.
Has your app taken off? Are you thinking about scaling? MongoDB makes it easy to horizontally scale out with built-in automatic sharding, but did you know that sharding isn't the only way to achieve scale with MongoDB?
In this webinar, we'll review three different ways to achieve scale with MongoDB. We'll cover how you can optimize your application design and configure your storage to achieve scale, as well as the basics of horizontal scaling. You'll walk away with a thorough understanding of options to scale your MongoDB application.
Topics covered include:
- Scaling Vertically
- Hardware Considerations
- Index Optimization
- Schema Design
- Sharding
CouchBase Lite is a native NoSQL database for Android (mobile) that enables JSON data and document storage, replication and conflict management. We will show you how we use it to get our data updated, distributed and in the format that suits us best.
CouchBase Lite is a native NoSQL database for Android (mobile) that enables JSON data and document storage, replication and conflict management. We will show you how we use it to get our data updated, distributed and in the format that suits us best.
Android Meetup Slovenija #2 - CouchBase LiteInfinum
CouchBase Lite is a native NoSQL database for Android (mobile) that enables JSON data and document storage, replication and conflict management. We will show you how we use it to get our data updated, distributed and in the format that suits us best.
New developers and teams are now polyglot :
- they use multiple programming languages (Java, Javascript, Ruby, ...)
- they use multiple persistence store (RDBMS, NoSQL, Hadoop)
In this talk you will learn about the benefits if being polyglot: use the good language or framework for the good cause, select the good persistence for specific constraints.
This presentation will show how developer could mix the Java platform with other technologies such as NodeJS and AngularJS to build application in a more productive way. This is also the opportunity to talk about the new Command Query Responsibility Segregation (CQRS) pattern to allow developers to be more effective and deliver the proper application to the user quicker.
This presentation was delivered during Devfest Nantes 2014
Similar to Best Practice In Software Development (20)
By Yunita Anggraeni - Co-Founder & COO Geekhunter | Topic: The secret of Most Wanted Geek
Presented in SARCCOM Meetup
With theme "Defining Your Future In Tech"
In 29 February 2020
At Block71 Bandung
By Adam Widi - Data Engineer at WarungPintar | Topic: Data Warehousing Tools On Data Ecosystem
Presented in SARCCOM Meetup
With theme "Defining Your Future In Tech"
In 29 February 2020
At Block71 Bandung
By Adam Widi - Data Engineer at WarungPintar | Topic: Data Warehousing Tools On Data Ecosystem
Presented in SARCCOM Meetup
With theme "Defining Your Future In Tech"
In 29 February 2020
At Block71 Bandung
Startup Engineering Culture
by Ifnu Bima, Head of Product at BBM
Engineering Excellence!
22-Jan-2019 18:00-21:00
@ PRASMUL University Prasetiya Mulya University, Campus Cilandak Cilandak Barat, RT.14/RW.6, Jl. R.A.Kartini, RT.14/RW.6, Cilandak
Organizer by Software Architect Indonesia Community (SARCCOM)
https://sarccom.org
SARCCOM https://sarccom.org
Requirement is specifications that should be implemented on development. It is the main object of Business Analysis job. IT Business Analysis working around requirement engineering to ensure the delivery of a good piece of software. When talking or gathering requirements, please keep this quote in mind:
Well defined requirements drive well designed architecture
Good architecture is a beginning of a good software.
How To Rearchitecting Legacy System
Meetup By Software Architect Indonesia Community https://www.meetup.com/Software-Architect-Indonesia/events/246479075/?_cookie-check=DrXW508tQr2LKtBD
Speaker: Moch Nasrullah Rahmani
BBM Engineer
Take care of the people, the products,
and the profits: in that order.
Architecting for Huper Growth and Great Engineering CultureSARCCOM
Architecting for Huper Growth and Great Engineering Culture
by Ifnu Bima
@SARCCOM MEETUP
http://sarccom.org
https://www.meetup.com/Software-Architect-Indonesia
In General What's the personality matrix, what personality and what type of works and what type of works and maybe one case studies by VHR consultancy Malaysia
Managing Security in Agile Culture by Rendra Perdana, CISSP - Head IT Infrastructure & Security at mataharimall.com
@SARCCOM MEETUP
http://sarccom.org
https://www.meetup.com/Software-Architect-Indonesia
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
1. Best Practice in software
development
Dipl. Inform.(FH) Jony Sugianto, M. Comp. Sc.
WA:0812-13086659
Email:jonysugianto@gmail.com
2. Agenda
● Programming language features
– Dynamic typed language
– Static typed language
– Strong typing
– Weak typing
●
Design Database System
– Complexity
- Database model
– Volume
- Sharding
– Traffic read/write
- Replication
3. Dynamic Typing
● conceptually simpler and
easier to understand
than static typing.
● more flexible.
● results in more compact
programs.
● faster development
/# python
num=5
num=”hello” #change type automatic
def predict(input):
ret=0
# do something
return ret
def bigfunction(predict, input):
out=predict(input)
return out
4. Static Typing
● Explicit declaration (or
initialization) of variables
before using
● Type checking is performed
during compile-time as
opposed to run-time
● One can refactor with
greater confidence
● Types serve as
documentation
● Run time efficiency
// scala
var id:Int=1
var number=2
var alamat=”jakarta”
def predict(input:Int):Double={
var ret=0.0
// do something
return ret
}
def bigfunc(predict:(Int)=>Double, input:Int)={
var out=predict(input)
return out
}
5. Strong Typing
// scala
var foo:String=”x”
foo=foo+2 // error at compile time
/* Python code */
# error at runtime
>>> foo = "x"
>>> foo = foo + 2
Traceback (most recent call last):
File "<pyshell#3>", line 1, in ?
foo = foo + 2
TypeError: cannot concatenate 'str'
and 'int' objects
>>>
6. Weak Typing
// PHP code
$str = 5 + "hello";
// equals 5 because "hello" is implicitly casted to 0
// PHP is weakly typed, thus is a very forgiving language.
7. Summary
● Strongly typed - many rules
● Weakly typed - few rules
● Dynamically typed - rules applied at run time
● Statically typed - rules applied at compile time
17. Relational Database Pros/Cons
● Pros
- simple, well-establish, standard approach
- maps well to data with consistent structure
- has extensive join capabilities
● Cons
- hard to scale
- does not map well to semi-structured data
- knowledge of the database structure is required to create
queries
23. Graph Database Pros/Cons
● Pros
- powerful data model
- easy to query(relation as pointer to object)
- map well to semi-structured data
- can easily evolve schema
● Cons
- hard to scale
- lacks of tool and framework support
- requires new art of problem solving