Code Generation in Action


Book Description

Covering technique and implementation for building code for complex applications frameworks, this book demonstrates how to build high-quality output that is consistent and maintainable. Lessons on abstracting the design of the code so that multiple outputs can be created from a single abstract model of the application functionality are provided. Techniques that range from using simple code processors to handle common coding problems to creating more elaborate and complex generators that maintain entire application tiers are covered. Topics such as building database access, user interface, remote procedure, test cases, and business logic code are also addressed, as is code for other system functions. Although code generation is an engineering technique, it also has an impact on engineering teams and management, an aspect of code generation that is covered in depth in this resource.




Terraform in Action


Book Description

"An outstanding source of knowledge for Terraform enthusiasts of all levels." - Anton Babenko, Betajob Terraform in Action shows you how to automate and scale infrastructure programmatically using the Terraform toolkit. Summary In Terraform in Action you will learn: Cloud architecture with Terraform Terraform module sharing and the private module registry Terraform security in a multitenant environment Strategies for performing blue/green deployments Refactoring for code maintenance and reusability Running Terraform at scale Creating your own Terraform provider Using Terraform as a continuous development/continuous delivery platform Terraform in Action introduces the infrastructure-as-code (IaC) model that lets you instantaneously create new components and respond efficiently to changes in demand. You’ll use the Terraform automation tool to design and manage servers that can be provisioned, shared, changed, tested, and deployed with a single command. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Provision, deploy, scale, and clone your entire stack to the cloud at the touch of a button. In Terraform, you create a collection of simple declarative scripts that define and manage application infrastructure. This powerful infrastructure-as-code approach automates key tasks like versioning and testing for everything from low-level networking to cloud services. About the book Terraform in Action shows you how to automate and scale infrastructure programmatically using the Terraform toolkit. Using practical, relevant examples, you’ll use Terraform to provision a Kubernetes cluster, deploy a multiplayer game, and configure other hands-on projects. As you progress to advanced techniques like zero-downtime deployments, you’ll discover how to think in Terraform rather than just copying and pasting scripts. What's inside Cloud architecture with Terraform Terraform module sharing and the private module registry Terraform security in a multitenant environment Strategies for performing blue/green deployments About the reader For readers experienced with a major cloud platform such as AWS. Examples in JavaScript and Golang. About the author Scott Winkler is a DevOps engineer and a distinguished Terraform expert. He has spoken multiple times at HashiTalks and HashiConf, and was selected as a HashiCorp Ambassador and Core Contributor in 2020. Table of Contents PART 1 TERRAFORM BOOTCAMP 1 Getting started with Terraform 2 Life cycle of a Terraform resource 3 Functional programming 4 Deploying a multi-tiered web application in AWS PART 2 TERRAFORM IN THE WILD 5 Serverless made easy 6 Terraform with friends 7 CI/CD pipelines as code 8 A multi-cloud MMORPG PART 3 MASTERING TERRAFORM 9 Zero-downtime deployments 10 Testing and refactoring 11 Extending Terraform by writing a custom provider 12 Automating Terraform 13 Security and secrets management




Code Generation — Concepts, Tools, Techniques


Book Description

Code Generation - Concepts, Tools, Techniques is based upon the proceedings of the Dagstuhl workshop on code generation which took place from 20-24 May 1991. The aim of the workshop was to evaluate current methods of code generation and to indicate the main directions which future research is likely to take. It provided an excellent forum for the exchange of ideas and had the added advantage of bringing together European and American experts who were unlikely to meet at less specialised gatherings. This volume contains 14 of the 30 papers presented at the Dagstuhl workshop. The papers deal mainly with the following four topics: tools and techniques for code generation, code generation for parallel architectures, register allocation and phase ordering problems, and formal methods and validations. Most of the papers assess the progress of on-going research work, much of which is published here for the first time, while others provide a review of recently completed projects. The volume also contains summaries of two discussion groups which looked at code generation tools and parallel architectures. As a direct result of one of these discussions, a group of the participants have collaborated to make a pure BURS system available for public distribution. This system, named BURG, is currently being beta-tested. Code Generation - Concepts, Tools, Techniques provides a representative summary of state-of-the-art code generation techniques and an important assessment of possible future innovations. It will be an invaluable reference work for researchers and practitioners in this important area.




Code Generation with Templates


Book Description

Templates are used to generate all kinds of text, including computer code. The last decade, the use of templates gained a lot of popularity due to the increase of dynamic web applications. Templates are a tool for programmers, and implementations of template engines are most times based on practical experience rather than based on a theoretical background. This book reveals the mathematical background of templates and shows interesting findings for improving the practical use of templates. First, a framework to determine the necessary computational power for the template metalanguage is presented. The template metalanguage does not need to be Turing-complete to be useful. A non-Turing-complete metalanguage enforces separation of concerns between the view and model. Second, syntactical correctness of all languages of the templates and generated code is ensured. This includes the syntactical correctness of the template metalanguage and the output language. Third, case studies show that the achieved goals are applicable in practice. It is even shown that syntactical correctness helps to prevent cross-site scripting attacks in web applications. The target audience of this book is twofold. The first group exists of researcher interested in the mathematical background of templates. The second group exists of users of templates. This includes designers of template engines on one side and programmers and web designers using templates on the other side




Clojure in Action


Book Description

Summary A fully revised edition that covers the new features available in Clojure 1.6. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Clojure is a modern Lisp for the JVM. It has the strengths you expect: first-class functions, macros, and Lisp's clean programming style. It supports functional programming, making it ideal for concurrent programming and for creating domain-specific languages. Clojure lets you solve harder problems, make faster changes, and end up with a smaller code base. It's no wonder that there are so many Clojure success stories. About the Book Clojure in Action, Second Edition is an expanded and improved version that's been updated to cover the new features of Clojure 1.6. The book gives you a rapid introduction to the Clojure language, moving from abstract theory to practical examples. You'll start by learning how to use Clojure as a general-purpose language. Next, you'll explore Clojure's efficient concurrency model, based on the database concept of Software Transactional Memory (STM). You'll gain a new level of productivity through Clojure DSLs that can run on the JVM. Along the way, you'll learn countless tips, tricks, and techniques for writing smaller, safer, and faster code. What's Inside Functional programming basics Metaprogramming with Clojure's macros Interoperating with Java Covers Clojure 1.6 About the Reader Assumes readers are familiar with a programming language like C, Java, Ruby, or Python. Table of Contents Introducing Clojure Clojure elements: Data structures and functions Building blocks of Clojure Multimethod polymorphism Exploring Clojure and Java interop State and the concurrent world Evolving Clojure through macros More on functional programming Protocols, records, and types Test-driven development and more More macros and DSL




Modelling -- Foundation and Applications


Book Description

This book constitutes the refereed proceedings of the 7th European Conference on Modelling Foundations and Applications, held in Birmingham, UK, in June 2011. The 19 revised full foundations track papers and 5 revised full applications track papers presented were carefully reviewed and selected from 61 submissions; also included are 5 workshop summaries and abstracts of 4 tutorials. The papers are organized in topical sections on model execution, model analysis, methodology, model management, model transformation, variability analysis and ADLs, and domain-specific modeling.




Proceedings


Book Description

The ASE conference is the major conference for theory and practice concerned with automating the software development process. Formerly known as Knowledge-Based Software Engineering (KBSE), the conference expanded in order to reach out to other scientific communities concerned with the automation aspects of formal methods, software process, human-computer interaction, requirements engineering, reverse engineering, testing and verification and validation, while still including an active artificial intelligence and knowledge-based research focus.




Functional Programming, Glasgow 1991


Book Description

The Glasgow functional programming group has held a workshop each summer since 1988. The entire group, accompanied by a selection of colleagues from other institutions, retreats to a pleasant Scottish location for a few days. Everyone speaks briefly, enhancing coherence, cross fertilisation, and camaraderie in our work. The proceedings of the first workshop were published as a technical report. Demand for this was large enough to encourage wider publication, and subsequent proceedings have been published in the Springer-Verlag Workshops in Computing series. These are the proceedings of the-meeting held 12-14 August 1991, in Portree on the Isle of Skye. A preliminary proceedings was prepared in advance of the meeting. Most presentations were limited to a brief fifteen minutes, outlining the essentials of their subject, and referring the audience to the pre-print proceedings for details. Papers were then refereed and rewritten, and you hold the final results in your hands. A number of themes emerged at this year's workshop, including relational algebra and its application to hardware design, partial evaluation and program transformation, implementation techniques, and strictness analysis. We were especially pleased to see applications of functional programming emerge as a theme. One of the sessions was devoted to a lively discussion of applications, and was greatly enhanced by our industrial participants. The workshop was organised by Kei Davis, Cordelia Hall, Rogardt Heldal, Carsten Kehler Holst, John Hughes, John O'Donnell, and Satnam Singh all from the University of Glasgow.




IronPython in Action


Book Description

In 2005, Microsoft quietly announced an initiative to bring dynamic languages to the .NET platform. The starting point for this project was a .NET implementation of Python, dubbed IronPython. After a couple years of incubation, IronPython is ready for real-world use. It blends the simplicity, elegance, and dynamism of Python with the power of the .NET framework. IronPython in Action offers a comprehensive, hands-on introduction to Microsoft's exciting new approach for programming the .NET framework. It approaches IronPython as a first class .NET language, fully integrated with the .NET environment, Visual Studio, and even the open-source Mono implementation. You'll learn how IronPython can be embedded as a ready-made scripting language into C# and VB.NET programs, used for writing full applications or for web development with ASP. Even better, you'll see how IronPython works in Silverlight for client-side web programming. IronPython opens up exciting new possibilities. Because it's a dynamic language, it permits programming paradigms not easily available in VB and C#. In this book, authors Michael Foord and Christian Muirhead explore the world of functional programming, live introspection, dynamic typing and duck typing , metaprogramming, and more. IronPython in Action explores these topics with examples, making use of the Python interactive console to explore the .NET framework with live objects. The expert authors provide a complete introduction for programmers to both the Python language and the power of the .NET framework. The book also shows how to extend IronPython with C#, extending C# and VB.NET applications with Python, using IronPython with .NET 3.0 and Powershell, IronPython as a Windows scripting tool, and much more. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.




Spring Roo in Action


Book Description

Summary Spring Roo in Action is a unique book that teaches you how to code Java in Roo, with a particular focus on Spring-based applications. Through hands-on examples, you'll learn how Roo creates well-formed application structures and supports best practices and tools. Plus, you'll get a quick-and-dirty guide to setting up Roo effectively in your environment. About the Technology Roo is a lightweight Java console shell that simplifies compile-time tasks. It improves productivity by enforcing correct coding practices and patterns and integrates with mainstream Java technologies, including ActiveMQ, GWT, JPA, and OSGi. And, when you finish coding, it gets out of the way so there's no runtime impact. About the Book Spring Roo in Action teaches you to code Java more efficiently using Roo. With the help of many examples, it shows you how to build application components from the database layer to the user interface. The book takes a test-first approach and points out how Roo can help automate many of the mundane details of coding Java apps. Along the way, you'll address important topics like security, messaging, and cloud computing. This book is for Java developers who want to get more productive by using Roo. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Learn Roo from the ground up Integrate with existing projects Create custom add-ons Use Roo with Spring ========================================​============== Table of Contents PART 1 STARTING SPRING APPS RAPIDLY WITH ROO What is Spring Roo? Getting started with Roo PART 2 DATABASES AND ENTITIES Database persistence with entities Relationships, JPA, and advanced persistence PART 3 WEB DEVELOPMENT Rapid web applications with Roo Advanced web applications RIA and other web frameworks Configuring security PART 4 INTEGRATION Testing your application Enterprise services—email and messaging Roo add-ons Advanced add-ons and deployment PART 5 ROO IN THE CLOUD Cloud computing Workflow applications using Spring Integration